diff --git a/WATCHLISTS b/WATCHLISTS index 7b3e284..a119385 100644 --- a/WATCHLISTS +++ b/WATCHLISTS
@@ -1889,7 +1889,10 @@ 'gn': ['agrieve+watch@chromium.org', 'dpranke@chromium.org', 'tfarina@chromium.org'], - 'goma': ['goma+cc@google.com'], + 'goma': ['shinyak+cc@chromium.com', + 'tikuta+cc@chromium.com', + 'ukai+cc@chromium.com', + 'yyanagisawa+cc@chromium.com'], 'gpu': ['piman+watch@chromium.org'], 'history_ui': ['dbeam+watch-history@chromium.org', 'dubroy@chromium.org',
diff --git a/base/memory/memory_coordinator_proxy.cc b/base/memory/memory_coordinator_proxy.cc index 24b6d66655..59c7a6a 100644 --- a/base/memory/memory_coordinator_proxy.cc +++ b/base/memory/memory_coordinator_proxy.cc
@@ -6,36 +6,40 @@ namespace base { +namespace { + +MemoryCoordinator* g_memory_coordinator = nullptr; + +} // namespace + MemoryCoordinatorProxy::MemoryCoordinatorProxy() { } MemoryCoordinatorProxy::~MemoryCoordinatorProxy() { } +// static MemoryCoordinatorProxy* MemoryCoordinatorProxy::GetInstance() { return Singleton<base::MemoryCoordinatorProxy>::get(); } +// static +void MemoryCoordinatorProxy::SetMemoryCoordinator( + MemoryCoordinator* coordinator) { + DCHECK(!g_memory_coordinator); + g_memory_coordinator = coordinator; +} + MemoryState MemoryCoordinatorProxy::GetCurrentMemoryState() const { - if (!getter_callback_) + if (!g_memory_coordinator) return MemoryState::NORMAL; - return getter_callback_.Run(); + return g_memory_coordinator->GetCurrentMemoryState(); } void MemoryCoordinatorProxy::SetCurrentMemoryStateForTesting( MemoryState memory_state) { - DCHECK(setter_callback_); - setter_callback_.Run(memory_state); -} - -void MemoryCoordinatorProxy::SetGetCurrentMemoryStateCallback( - GetCurrentMemoryStateCallback callback) { - getter_callback_ = callback; -} - -void MemoryCoordinatorProxy::SetSetCurrentMemoryStateForTestingCallback( - SetCurrentMemoryStateCallback callback) { - setter_callback_ = callback; + DCHECK(g_memory_coordinator); + g_memory_coordinator->SetCurrentMemoryStateForTesting(memory_state); } } // namespace base
diff --git a/base/memory/memory_coordinator_proxy.h b/base/memory/memory_coordinator_proxy.h index 4148da5d..036f126 100644 --- a/base/memory/memory_coordinator_proxy.h +++ b/base/memory/memory_coordinator_proxy.h
@@ -12,37 +12,39 @@ namespace base { +// The MemoryCoordinator interface. See comments in MemoryCoordinatorProxy for +// method descriptions. +class BASE_EXPORT MemoryCoordinator { + public: + virtual ~MemoryCoordinator() {} + + virtual MemoryState GetCurrentMemoryState() const = 0; + virtual void SetCurrentMemoryStateForTesting(MemoryState memory_state) = 0; +}; + // The proxy of MemoryCoordinator to be accessed from components that are not // in content/browser e.g. net. class BASE_EXPORT MemoryCoordinatorProxy { public: - using GetCurrentMemoryStateCallback = base::Callback<MemoryState()>; - using SetCurrentMemoryStateCallback = base::Callback<void(MemoryState)>; - static MemoryCoordinatorProxy* GetInstance(); + // Sets an implementation of MemoryCoordinator. MemoryCoordinatorProxy doesn't + // take the ownership of |coordinator|. It must outlive this proxy. + // This should be called before any components starts using this proxy. + static void SetMemoryCoordinator(MemoryCoordinator* coordinator); + // Returns the current memory state. MemoryState GetCurrentMemoryState() const; // Sets the current memory state. This function is for testing only. void SetCurrentMemoryStateForTesting(MemoryState memory_state); - // Sets state-getter callback. - void SetGetCurrentMemoryStateCallback(GetCurrentMemoryStateCallback callback); - - // Sets state-setter callback. - void SetSetCurrentMemoryStateForTestingCallback( - SetCurrentMemoryStateCallback callback); - private: friend struct base::DefaultSingletonTraits<MemoryCoordinatorProxy>; MemoryCoordinatorProxy(); virtual ~MemoryCoordinatorProxy(); - GetCurrentMemoryStateCallback getter_callback_; - SetCurrentMemoryStateCallback setter_callback_; - DISALLOW_COPY_AND_ASSIGN(MemoryCoordinatorProxy); };
diff --git a/build/android/play_services/config.json b/build/android/play_services/config.json index d359f9f..d9a1e81 100644 --- a/build/android/play_services/config.json +++ b/build/android/play_services/config.json
@@ -11,6 +11,6 @@ "play-services-nearby", "play-services-vision" ], - "version_number": "10.0.1", + "version_number": "10.2.0", "version_xml_path": "res/values/version.xml" }
diff --git a/build/android/play_services/google_play_services_library.zip.sha1 b/build/android/play_services/google_play_services_library.zip.sha1 index 850a4fd..70df3c6 100644 --- a/build/android/play_services/google_play_services_library.zip.sha1 +++ b/build/android/play_services/google_play_services_library.zip.sha1
@@ -1 +1 @@ -3e54555b12aa48593a31a89c6239ec35520e4477 \ No newline at end of file +7bef387dc3f3fa6fb62d29f26fd18814b3d51ecf \ No newline at end of file
diff --git a/build/secondary/third_party/android_tools/BUILD.gn b/build/secondary/third_party/android_tools/BUILD.gn index bd899243..cbd58b2cf 100644 --- a/build/secondary/third_party/android_tools/BUILD.gn +++ b/build/secondary/third_party/android_tools/BUILD.gn
@@ -186,7 +186,7 @@ # TODO(dgn): Use the POM files instead of hardcoding the dependencies. gms_path = "$default_extras_android_sdk_root/extras/google/m2repository/com/google/android/gms" -gms_version = "10.0.1" +gms_version = "10.2.0" android_aar_prebuilt("google_play_services_basement_java") { deps = [
diff --git a/chrome/VERSION b/chrome/VERSION index b8a160ca..877af05 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=58 MINOR=0 -BUILD=3018 +BUILD=3019 PATCH=0
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java index 17120e87..f4be47b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java
@@ -59,6 +59,7 @@ import org.chromium.chrome.browser.tabmodel.document.DocumentTabModelSelector; import org.chromium.chrome.browser.tabmodel.document.StorageDelegate; import org.chromium.chrome.browser.tabmodel.document.TabDelegate; +import org.chromium.chrome.browser.webapps.ChromeShortcutManager; import org.chromium.chrome.browser.webapps.GooglePlayWebApkInstallDelegate; import org.chromium.components.signin.AccountManagerDelegate; import org.chromium.components.signin.SystemAccountManagerDelegate; @@ -396,6 +397,11 @@ return null; } + /** Returns the singleton instance of ChromeShortcutManager */ + public ChromeShortcutManager createChromeShortcutManager() { + return new ChromeShortcutManager(); + } + /** * Returns the singleton instance of the DocumentTabModelSelector. * TODO(dfalcantara): Find a better place for this once we differentiate between activity and
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java index 10cb908..7295363 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -566,6 +566,8 @@ } if (mVrShellDelegate.isDaydreamVrIntent(intent)) { mVrShellDelegate.enterVRFromIntent(intent); + } else if (ShortcutHelper.isShowToastIntent(intent)) { + ShortcutHelper.showAddedToHomescreenToastFromIntent(intent); } } finally { TraceEvent.end("ChromeTabbedActivity.onNewIntentWithNative");
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java index c8356b73..dac0669 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java
@@ -4,7 +4,6 @@ package org.chromium.chrome.browser; -import android.annotation.SuppressLint; import android.app.ActivityManager; import android.content.Context; import android.content.Intent; @@ -12,7 +11,6 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; -import android.content.pm.ResolveInfo; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; @@ -35,6 +33,8 @@ import org.chromium.base.annotations.CalledByNative; import org.chromium.blink_public.platform.WebDisplayMode; import org.chromium.chrome.R; +import org.chromium.chrome.browser.util.IntentUtils; +import org.chromium.chrome.browser.webapps.ChromeShortcutManager; import org.chromium.chrome.browser.webapps.ChromeWebApkHost; import org.chromium.chrome.browser.webapps.WebApkInfo; import org.chromium.chrome.browser.webapps.WebappActivity; @@ -60,7 +60,7 @@ public static final String EXTRA_ICON = "org.chromium.chrome.browser.webapp_icon"; public static final String EXTRA_ID = "org.chromium.chrome.browser.webapp_id"; public static final String EXTRA_MAC = "org.chromium.chrome.browser.webapp_mac"; - // EXTRA_TITLE is present for backward compatibility reasons + // EXTRA_TITLE is present for backward compatibility reasons. public static final String EXTRA_TITLE = "org.chromium.chrome.browser.webapp_title"; public static final String EXTRA_NAME = "org.chromium.chrome.browser.webapp_name"; public static final String EXTRA_SHORT_NAME = "org.chromium.chrome.browser.webapp_short_name"; @@ -82,6 +82,10 @@ public static final String EXTRA_WEBAPK_PACKAGE_NAME = "org.chromium.chrome.browser.webapk_package_name"; + /** Used for the callback intent when using the new shortcut API. */ + public static final String SHORTCUT_TOAST_CATEGORY = + "com.google.intent.category.SHORTCUT_TOAST"; + // When a new field is added to the intent, this version should be incremented so that it will // be correctly populated into the WebappRegistry/WebappDataStorage. public static final int WEBAPP_SHORTCUT_VERSION = 2; @@ -91,10 +95,6 @@ private static final String TAG = "ShortcutHelper"; - // There is no public string defining this intent so if Home changes the value, we - // have to update this string. - private static final String INSTALL_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT"; - // The activity class used for launching a WebApk. private static final String WEBAPK_MAIN_ACTIVITY = "org.chromium.webapk.shell_apk.MainActivity"; @@ -106,15 +106,17 @@ private static final float GENERATED_ICON_PADDING_RATIO = 1.0f / 12.0f; private static final float GENERATED_ICON_FONT_SIZE_RATIO = 1.0f / 3.0f; - /** Broadcasts Intents out Android for adding the shortcut. */ + /** Helper for generating home screen shortcuts. */ public static class Delegate { /** - * Broadcasts an intent to all interested BroadcastReceivers. - * @param context The Context to use. - * @param intent The intent to broadcast. + * Request Android to add a shortcut to the home screen. + * @param title Title of the shortcut. + * @param icon Image that represents the shortcut. + * @param intent Intent to fire when the shortcut is activated. */ - public void sendBroadcast(Context context, Intent intent) { - context.sendBroadcast(intent); + public void addShortcutToHomescreen(String title, Bitmap icon, Intent shortcutIntent) { + ChromeShortcutManager.getInstance().addShortcutToHomeScreen( + title, icon, shortcutIntent); } /** @@ -165,9 +167,7 @@ } @Override protected void onPostExecute(final Intent resultIntent) { - Context context = ContextUtils.getApplicationContext(); - sDelegate.sendBroadcast( - context, createAddToHomeIntent(userTitle, icon, resultIntent)); + sDelegate.addShortcutToHomescreen(userTitle, icon, resultIntent); // Store the webapp data so that it is accessible without the intent. Once this // process is complete, call back to native code to start the splash image @@ -180,8 +180,9 @@ nativeOnWebappDataStored(callbackPointer); } }); - - showAddedToHomescreenToast(userTitle); + if (ChromeShortcutManager.getInstance().shouldShowToastWhenAddingShortcut()) { + showAddedToHomescreenToast(userTitle); + } } }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } @@ -198,7 +199,8 @@ Intent i = new Intent(); i.setClassName(packageName, WEBAPK_MAIN_ACTIVITY); i.addCategory(Intent.CATEGORY_LAUNCHER); - context.sendBroadcast(createAddToHomeIntent(shortcutTitle, bitmap, i)); + context.sendBroadcast( + ChromeShortcutManager.createAddToHomeIntent(shortcutTitle, bitmap, i)); } catch (NameNotFoundException e) { e.printStackTrace(); } @@ -209,14 +211,17 @@ */ @SuppressWarnings("unused") @CalledByNative - private static void addShortcut(String url, String userTitle, Bitmap icon, int source) { + private static void addShortcut( + String id, String url, String userTitle, Bitmap icon, int source) { Context context = ContextUtils.getApplicationContext(); final Intent shortcutIntent = createShortcutIntent(url); + shortcutIntent.putExtra(EXTRA_ID, id); shortcutIntent.putExtra(EXTRA_SOURCE, source); shortcutIntent.setPackage(context.getPackageName()); - sDelegate.sendBroadcast( - context, createAddToHomeIntent(userTitle, icon, shortcutIntent)); - showAddedToHomescreenToast(userTitle); + sDelegate.addShortcutToHomescreen(userTitle, icon, shortcutIntent); + if (ChromeShortcutManager.getInstance().shouldShowToastWhenAddingShortcut()) { + showAddedToHomescreenToast(userTitle); + } } /** @@ -229,6 +234,24 @@ } /** + * Show toast when getting the callback intent by the launcher after adding shortcut by using + * the new shortcut API. + */ + public static void showAddedToHomescreenToastFromIntent(Intent intent) { + String title = IntentUtils.safeGetStringExtra(intent, Intent.EXTRA_SHORTCUT_NAME); + showAddedToHomescreenToast(title); + } + + /** + * Determine if it is a callback intent (which requests for a show-toast), used in the new + * shortcut API. + */ + public static boolean isShowToastIntent(Intent intent) { + if (intent == null || intent.getCategories() == null) return false; + return intent.getCategories().contains(SHORTCUT_TOAST_CATEGORY); + } + + /** * Shows toast notifying user that a WebAPK install is already in progress when user tries to * queue a new install for the same WebAPK. */ @@ -273,22 +296,6 @@ } /** - * Creates an intent that will add a shortcut to the home screen. - * @param title Title of the shortcut. - * @param icon Image that represents the shortcut. - * @param shortcutIntent Intent to fire when the shortcut is activated. - * @return Intent for the shortcut. - */ - public static Intent createAddToHomeIntent(String title, Bitmap icon, - Intent shortcutIntent) { - Intent i = new Intent(INSTALL_SHORTCUT); - i.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); - i.putExtra(Intent.EXTRA_SHORTCUT_NAME, title); - i.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon); - return i; - } - - /** * Creates a shortcut to launch a web app on the home screen. * @param id Id of the web app. * @param action Intent action to open a full screen activity. @@ -358,22 +365,15 @@ /** * Utility method to check if a shortcut can be added to the home screen. - * @param context Context used to get the package manager. * @return if a shortcut can be added to the home screen under the current profile. */ - // TODO(crbug.com/635567): Fix this properly. - @SuppressLint("WrongConstant") - public static boolean isAddToHomeIntentSupported(Context context) { - PackageManager pm = context.getPackageManager(); - Intent i = new Intent(INSTALL_SHORTCUT); - List<ResolveInfo> receivers = pm.queryBroadcastReceivers( - i, PackageManager.GET_INTENT_FILTERS); - return !receivers.isEmpty(); + public static boolean isAddToHomeIntentSupported() { + return ChromeShortcutManager.getInstance().canAddShortcutToHomescreen(); } /** * Returns whether the given icon matches the size requirements to be used on the home screen. - * @param width Icon width, in pixels. + * @param width Icon width, in pixels. * @param height Icon height, in pixels. * @return whether the given icon matches the size requirements to be used on the home screen. */ @@ -436,10 +436,10 @@ * Generates a generic icon to be used in the launcher. This is just a rounded rectangle with * a letter in the middle taken from the website's domain name. * - * @param url URL of the shortcut. - * @param red Red component of the dominant icon color. + * @param url URL of the shortcut. + * @param red Red component of the dominant icon color. * @param green Green component of the dominant icon color. - * @param blue Blue component of the dominant icon color. + * @param blue Blue component of the dominant icon color. * @return Bitmap Either the touch-icon or the newly created favicon. */ @CalledByNative
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java index d72051fd..040ceaa 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
@@ -163,7 +163,7 @@ // is not persisted when adding to the homescreen. // * If creating shortcuts it not supported by the current home screen. MenuItem homescreenItem = menu.findItem(R.id.add_to_homescreen_id); - boolean homescreenItemVisible = ShortcutHelper.isAddToHomeIntentSupported(mActivity) + boolean homescreenItemVisible = ShortcutHelper.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme && !isContentScheme && !isIncognito; if (homescreenItemVisible) { homescreenItem.setTitle(AppBannerManager.getHomescreenLanguageOption());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java b/chrome/android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java index 8aa2d7b..1f76edae 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java
@@ -44,8 +44,7 @@ */ public static boolean isSupported() { if (sIsSupported == null) { - Context context = ContextUtils.getApplicationContext(); - sIsSupported = ShortcutHelper.isAddToHomeIntentSupported(context); + sIsSupported = ShortcutHelper.isAddToHomeIntentSupported(); } return sIsSupported; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeShortcutManager.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeShortcutManager.java new file mode 100644 index 0000000..1bc1e74 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeShortcutManager.java
@@ -0,0 +1,76 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.webapps; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.graphics.Bitmap; + +import org.chromium.base.ContextUtils; +import org.chromium.chrome.browser.ChromeApplication; + +import java.util.List; + +/** + * This class handles the adding of shortcuts to the Android Home Screen. + */ +public class ChromeShortcutManager { + // There is no public string defining this intent so if Home changes the value, we + // have to update this string. + private static final String INSTALL_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT"; + + private static ChromeShortcutManager sInstance; + + /* Returns the singleton instance of ChromeShortcutManager, creating it if needed. */ + public static ChromeShortcutManager getInstance() { + if (sInstance == null) { + sInstance = ((ChromeApplication) ContextUtils.getApplicationContext()) + .createChromeShortcutManager(); + } + return sInstance; + } + + /** + * Creates an intent that will add a shortcut to the home screen. + * @param title Title of the shortcut. + * @param icon Image that represents the shortcut. + * @param shortcutIntent Intent to fire when the shortcut is activated. + * @return Intent for the shortcut. + */ + public static Intent createAddToHomeIntent(String title, Bitmap icon, Intent shortcutIntent) { + Intent i = new Intent(INSTALL_SHORTCUT); + i.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); + i.putExtra(Intent.EXTRA_SHORTCUT_NAME, title); + i.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon); + return i; + } + + /** + * Add a shortcut to the home screen. + * @param title Title of the shortcut. + * @param icon Image that represents the shortcut. + * @param shortcutIntent Intent to fire when the shortcut is activated. + */ + public void addShortcutToHomeScreen(String title, Bitmap icon, Intent shortcutIntent) { + Intent intent = createAddToHomeIntent(title, icon, shortcutIntent); + ContextUtils.getApplicationContext().sendBroadcast(intent); + } + + // TODO(crbug.com/635567): Fix this properly. + @SuppressLint("WrongConstant") + public boolean canAddShortcutToHomescreen() { + PackageManager pm = ContextUtils.getApplicationContext().getPackageManager(); + Intent i = new Intent(INSTALL_SHORTCUT); + List<ResolveInfo> receivers = + pm.queryBroadcastReceivers(i, PackageManager.GET_INTENT_FILTERS); + return !receivers.isEmpty(); + } + + public boolean shouldShowToastWhenAddingShortcut() { + return true; + } +}
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni index 3b2a603..9a5454bb 100644 --- a/chrome/android/java_sources.gni +++ b/chrome/android/java_sources.gni
@@ -1053,6 +1053,7 @@ "java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java", "java/src/org/chromium/chrome/browser/webapps/FullScreenDelegateFactory.java", "java/src/org/chromium/chrome/browser/webapps/GooglePlayWebApkInstallDelegate.java", + "java/src/org/chromium/chrome/browser/webapps/ChromeShortcutManager.java", "java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java", "java/src/org/chromium/chrome/browser/webapps/WebApkActivity0.java", "java/src/org/chromium/chrome/browser/webapps/WebApkActivity1.java",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java index 3e52909b..8d57540 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
@@ -7,7 +7,6 @@ import android.app.Activity; import android.app.Instrumentation.ActivityMonitor; import android.app.Instrumentation.ActivityResult; -import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageInfo; @@ -182,7 +181,7 @@ AppBannerInfoBarDelegateAndroid.setPackageManagerForTesting(mPackageManager); ShortcutHelper.setDelegateForTests(new ShortcutHelper.Delegate() { @Override - public void sendBroadcast(Context context, Intent intent) { + public void addShortcutToHomescreen(String title, Bitmap icon, Intent shortcutIntent) { // Ignore to prevent adding homescreen shortcuts. } });
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenManagerTest.java index 8ee878c1..8678d77 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenManagerTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenManagerTest.java
@@ -5,7 +5,6 @@ package org.chromium.chrome.browser.webapps; import android.app.Activity; -import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.support.test.filters.SmallTest; @@ -76,11 +75,13 @@ private static final String EVENT_WEBAPP_TITLE = "appinstalled event test page"; private static class TestShortcutHelperDelegate extends ShortcutHelper.Delegate { - public Intent mBroadcastedIntent; + public String mRequestedShortcutTitle; + public Intent mRequestedShortcutIntent; @Override - public void sendBroadcast(Context context, Intent intent) { - mBroadcastedIntent = intent; + public void addShortcutToHomescreen(String title, Bitmap icon, Intent shortcutIntent) { + mRequestedShortcutTitle = title; + mRequestedShortcutIntent = shortcutIntent; } @Override @@ -88,8 +89,9 @@ return WEBAPP_ACTION_NAME; } - public void clearBroadcastedIntent() { - mBroadcastedIntent = null; + public void clearRequestedShortcutData() { + mRequestedShortcutTitle = null; + mRequestedShortcutIntent = null; } } @@ -177,23 +179,20 @@ // Add a webapp shortcut and make sure the intent's parameters make sense. loadUrl(WEBAPP_HTML, WEBAPP_TITLE); addShortcutToTab(mTab, ""); - Intent firedIntent = mShortcutHelperDelegate.mBroadcastedIntent; - assertEquals(WEBAPP_TITLE, firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME)); + assertEquals(WEBAPP_TITLE, mShortcutHelperDelegate.mRequestedShortcutTitle); - Intent launchIntent = firedIntent.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT); + Intent launchIntent = mShortcutHelperDelegate.mRequestedShortcutIntent; assertEquals(WEBAPP_HTML, launchIntent.getStringExtra(ShortcutHelper.EXTRA_URL)); assertEquals(WEBAPP_ACTION_NAME, launchIntent.getAction()); assertEquals(mActivity.getPackageName(), launchIntent.getPackage()); // Add a second shortcut and make sure it matches the second webapp's parameters. - mShortcutHelperDelegate.clearBroadcastedIntent(); + mShortcutHelperDelegate.clearRequestedShortcutData(); loadUrl(SECOND_WEBAPP_HTML, SECOND_WEBAPP_TITLE); addShortcutToTab(mTab, ""); - Intent newFiredIntent = mShortcutHelperDelegate.mBroadcastedIntent; - assertEquals(SECOND_WEBAPP_TITLE, - newFiredIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME)); + assertEquals(SECOND_WEBAPP_TITLE, mShortcutHelperDelegate.mRequestedShortcutTitle); - Intent newLaunchIntent = newFiredIntent.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT); + Intent newLaunchIntent = mShortcutHelperDelegate.mRequestedShortcutIntent; assertEquals(SECOND_WEBAPP_HTML, newLaunchIntent.getStringExtra(ShortcutHelper.EXTRA_URL)); assertEquals(WEBAPP_ACTION_NAME, newLaunchIntent.getAction()); assertEquals(mActivity.getPackageName(), newLaunchIntent.getPackage()); @@ -206,10 +205,9 @@ addShortcutToTab(mTab, ""); // Make sure the intent's parameters make sense. - Intent firedIntent = mShortcutHelperDelegate.mBroadcastedIntent; - assertEquals(NORMAL_TITLE, firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME)); + assertEquals(NORMAL_TITLE, mShortcutHelperDelegate.mRequestedShortcutTitle); - Intent launchIntent = firedIntent.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT); + Intent launchIntent = mShortcutHelperDelegate.mRequestedShortcutIntent; assertEquals(mActivity.getPackageName(), launchIntent.getPackage()); assertEquals(Intent.ACTION_VIEW, launchIntent.getAction()); assertEquals(NORMAL_HTML, launchIntent.getDataString()); @@ -221,8 +219,7 @@ // Add a webapp shortcut using the page's title. loadUrl(WEBAPP_HTML, WEBAPP_TITLE); addShortcutToTab(mTab, ""); - Intent firedIntent = mShortcutHelperDelegate.mBroadcastedIntent; - assertEquals(WEBAPP_TITLE, firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME)); + assertEquals(WEBAPP_TITLE, mShortcutHelperDelegate.mRequestedShortcutTitle); } @SmallTest @@ -231,8 +228,7 @@ // Add a webapp shortcut with a custom title. loadUrl(WEBAPP_HTML, WEBAPP_TITLE); addShortcutToTab(mTab, EDITED_WEBAPP_TITLE); - Intent firedIntent = mShortcutHelperDelegate.mBroadcastedIntent; - assertEquals(EDITED_WEBAPP_TITLE, firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME)); + assertEquals(EDITED_WEBAPP_TITLE, mShortcutHelperDelegate.mRequestedShortcutTitle); } @SmallTest @@ -240,8 +236,7 @@ public void testAddWebappShortcutsWithApplicationName() throws Exception { loadUrl(META_APP_NAME_HTML, META_APP_NAME_PAGE_TITLE); addShortcutToTab(mTab, ""); - Intent firedIntent = mShortcutHelperDelegate.mBroadcastedIntent; - assertEquals(META_APP_NAME_TITLE, firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME)); + assertEquals(META_APP_NAME_TITLE, mShortcutHelperDelegate.mRequestedShortcutTitle); } @SmallTest @@ -314,7 +309,7 @@ CriteriaHelper.pollUiThread(new Criteria() { @Override public boolean isSatisfied() { - return mShortcutHelperDelegate.mBroadcastedIntent != null; + return mShortcutHelperDelegate.mRequestedShortcutIntent != null; } });
diff --git a/chrome/browser/android/shortcut_helper.cc b/chrome/browser/android/shortcut_helper.cc index aa309f6..e72c483 100644 --- a/chrome/browser/android/shortcut_helper.cc +++ b/chrome/browser/android/shortcut_helper.cc
@@ -79,7 +79,7 @@ AddWebappWithSkBitmap(info, webapp_id, icon_bitmap, splash_image_callback); return; } - AddShortcutWithSkBitmap(info, icon_bitmap); + AddShortcutWithSkBitmap(info, webapp_id, icon_bitmap); } // static @@ -134,8 +134,11 @@ } void ShortcutHelper::AddShortcutWithSkBitmap(const ShortcutInfo& info, + const std::string& id, const SkBitmap& icon_bitmap) { JNIEnv* env = base::android::AttachCurrentThread(); + ScopedJavaLocalRef<jstring> java_id = + base::android::ConvertUTF8ToJavaString(env, id); ScopedJavaLocalRef<jstring> java_url = base::android::ConvertUTF8ToJavaString(env, info.url.spec()); ScopedJavaLocalRef<jstring> java_user_title = @@ -144,8 +147,8 @@ if (icon_bitmap.getSize()) java_bitmap = gfx::ConvertToJavaBitmap(&icon_bitmap); - Java_ShortcutHelper_addShortcut(env, java_url, java_user_title, java_bitmap, - info.source); + Java_ShortcutHelper_addShortcut(env, java_id, java_url, java_user_title, + java_bitmap, info.source); } void ShortcutHelper::ShowWebApkInstallInProgressToast() {
diff --git a/chrome/browser/android/shortcut_helper.h b/chrome/browser/android/shortcut_helper.h index 26a3a10..0047991 100644 --- a/chrome/browser/android/shortcut_helper.h +++ b/chrome/browser/android/shortcut_helper.h
@@ -62,9 +62,9 @@ const base::Closure& splash_image_callback); // Adds a shortcut which opens in a browser tab to the launcher. - static void AddShortcutWithSkBitmap( - const ShortcutInfo& info, - const SkBitmap& icon_bitmap); + static void AddShortcutWithSkBitmap(const ShortcutInfo& info, + const std::string& id, + const SkBitmap& icon_bitmap); // Shows toast notifying user that a WebAPK install is already in progress // when user tries to queue a new install for the same WebAPK.
diff --git a/chrome/browser/extensions/process_manager_browsertest.cc b/chrome/browser/extensions/process_manager_browsertest.cc index 71e9e4b..5453150 100644 --- a/chrome/browser/extensions/process_manager_browsertest.cc +++ b/chrome/browser/extensions/process_manager_browsertest.cc
@@ -442,7 +442,9 @@ // Child extension frames should only appear if it is hosted in an extension // process (i.e. if the top-level frame is an extension page, or if OOP frames // are enabled for extensions). -IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest, FrameClassification) { +// Disabled due to flake: https://crbug.com/693287. +IN_PROC_BROWSER_TEST_F(ProcessManagerBrowserTest, + DISABLED_FrameClassification) { const Extension* extension1 = CreateExtension("Extension 1", false); const Extension* extension2 = CreateExtension("Extension 2", true); embedded_test_server()->ServeFilesFromDirectory(extension1->path());
diff --git a/content/app/strings/content_strings.grd b/content/app/strings/content_strings.grd index 9280531..bf11e85 100644 --- a/content/app/strings/content_strings.grd +++ b/content/app/strings/content_strings.grd
@@ -192,7 +192,7 @@ <message name="IDS_FORM_SUBMIT_LABEL" desc="Default label for Submit buttons in forms on webpages."> Submit </message> - <message name="IDS_FORM_INPUT_ALT" desc="alt text for <input> elements with no alt, title, or value"> + <message name="IDS_FORM_INPUT_ALT" desc="Alt text for <input> elements with no alt, title, or value"> Submit </message> <message name="IDS_FORM_RESET_LABEL" desc="default label for Reset buttons in forms on webpages"> @@ -270,247 +270,247 @@ <ph name="WEEK">$1<ex>Week 38, 2014</ex></ph>, starting on <ph name="WEEK_START_DATE">$2<ex>September 15, 2014</ex></ph> </message> - <message name="IDS_AX_ROLE_ARTICLE" desc="accessibility role description for article"> + <message name="IDS_AX_ROLE_ARTICLE" desc="Accessibility role description for article"> article </message> - <message name="IDS_AX_ROLE_BANNER" desc="accessibility role description for banner"> + <message name="IDS_AX_ROLE_BANNER" desc="Accessibility role description for banner"> banner </message> - <message name="IDS_AX_ROLE_COMPLEMENTARY" desc="accessibility role description for complementary"> + <message name="IDS_AX_ROLE_COMPLEMENTARY" desc="Accessibility role description for complementary"> complementary </message> - <message name="IDS_AX_ROLE_CHECK_BOX" desc="accessibility role description for a check box"> + <message name="IDS_AX_ROLE_CHECK_BOX" desc="Accessibility role description for a check box"> checkbox </message> - <message name="IDS_AX_ROLE_CONTENT_INFO" desc="accessibility role description for credits and information about the content of the page, like copyrights and privacy statements"> + <message name="IDS_AX_ROLE_CONTENT_INFO" desc="Accessibility role description for credits and information about the content of the page, like copyrights and privacy statements"> content info </message> - <message name="IDS_AX_ROLE_DEFINITION" desc="accessibility role description for a definition"> + <message name="IDS_AX_ROLE_DEFINITION" desc="Accessibility role description for a definition"> definition </message> - <message name="IDS_AX_ROLE_DESCRIPTION_LIST" desc="accessibility role description for a definition list"> + <message name="IDS_AX_ROLE_DESCRIPTION_LIST" desc="Accessibility role description for a definition list"> definition list </message> - <message name="IDS_AX_ROLE_DESCRIPTION_TERM" desc="accessibility role description for description term(as in a description list)"> + <message name="IDS_AX_ROLE_DESCRIPTION_TERM" desc="Accessibility role description for description term (as in a description list)"> term </message> <message name="IDS_AX_ROLE_FEED" desc="Accessibility role description for a scrollable list of articles."> feed </message> - <message name="IDS_AX_ROLE_FIGURE" desc="accessibility role description for figure"> + <message name="IDS_AX_ROLE_FIGURE" desc="Accessibility role description for figure"> figure </message> - <message name="IDS_AX_ROLE_FORM" desc="accessibility role description for form"> + <message name="IDS_AX_ROLE_FORM" desc="Accessibility role description for form"> form </message> - <message name="IDS_AX_ROLE_FOOTER" desc="accessibility role description for footers"> + <message name="IDS_AX_ROLE_FOOTER" desc="Accessibility role description for footers"> footer </message> <if expr="is_macosx"> - <message name="IDS_AX_ROLE_STEPPER" desc="accessibility role description for a stepper - a control where you can use up/down arrows to increment or decrement it. The name 'stepper' is how this user interface element is described by VoiceOver on Mac OS X; the translation should be consistent with VoiceOver."> + <message name="IDS_AX_ROLE_STEPPER" desc="Accessibility role description for a stepper - a control where you can use up/down arrows to increment or decrement it. The name 'stepper' is how this user interface element is described by VoiceOver on Mac OS X; the translation should be consistent with VoiceOver."> stepper </message> </if> - <message name="IDS_AX_ROLE_TOGGLE_BUTTON" desc="accessibility role description for a toggle button"> + <message name="IDS_AX_ROLE_TOGGLE_BUTTON" desc="Accessibility role description for a toggle button"> toggle button </message> - <message name="IDS_AX_ROLE_HEADING" desc="accessibility role description for headings"> + <message name="IDS_AX_ROLE_HEADING" desc="Accessibility role description for headings"> heading </message> - <message name="IDS_AX_ROLE_IMAGE_MAP" desc="accessibility role description for image map"> + <message name="IDS_AX_ROLE_IMAGE_MAP" desc="Accessibility role description for image map"> image map </message> - <message name="IDS_AX_ROLE_LINK" desc="accessibility role description for link"> + <message name="IDS_AX_ROLE_LINK" desc="Accessibility role description for link"> link </message> - <message name="IDS_AX_ROLE_LIST_MARKER" desc="accessibility role description for list marker"> + <message name="IDS_AX_ROLE_LIST_MARKER" desc="Accessibility role description for list marker"> list marker </message> - <message name="IDS_AX_ROLE_MAIN_CONTENT" desc="accessibility role description for main content of the document."> + <message name="IDS_AX_ROLE_MAIN_CONTENT" desc="Accessibility role description for main content of the document."> main </message> - <message name="IDS_AX_ROLE_MARK" desc="accessibility role description for highlighted content."> + <message name="IDS_AX_ROLE_MARK" desc="Accessibility role description for highlighted content."> highlighted content </message> - <message name="IDS_AX_ROLE_MATH" desc="accessibility role description for math"> + <message name="IDS_AX_ROLE_MATH" desc="Accessibility role description for math"> math </message> - <message name="IDS_AX_ROLE_NAVIGATIONAL_LINK" desc="accessibility role description for group of navigational links."> + <message name="IDS_AX_ROLE_NAVIGATIONAL_LINK" desc="Accessibility role description for group of navigational links."> navigation </message> - <message name="IDS_AX_ROLE_REGION" desc="accessibility role description for region"> + <message name="IDS_AX_ROLE_REGION" desc="Accessibility role description for region"> region </message> - <message name="IDS_AX_ROLE_SEARCH_BOX" desc="accessibility role description for search text field"> + <message name="IDS_AX_ROLE_SEARCH_BOX" desc="Accessibility role description for search text field"> search text field </message> - <message name="IDS_AX_ROLE_STATUS" desc="accessibility role description for status"> + <message name="IDS_AX_ROLE_STATUS" desc="Accessibility role description for status"> status </message> - <message name="IDS_AX_ROLE_SWITCH" desc="accessibility role description for switch"> + <message name="IDS_AX_ROLE_SWITCH" desc="Accessibility role description for switch"> switch </message> - <message name="IDS_AX_ROLE_WEB_AREA" desc="accessibility role description for web area"> + <message name="IDS_AX_ROLE_WEB_AREA" desc="Accessibility role description for web area"> HTML content </message> <if expr="is_android"> - <message name="IDS_AX_ROLE_ALERT" desc="accessibility role description for an alert"> + <message name="IDS_AX_ROLE_ALERT" desc="Accessibility role description for an alert"> alert </message> - <message name="IDS_AX_ROLE_ALERT_DIALOG" desc="accessibility role description for an alert dialog"> + <message name="IDS_AX_ROLE_ALERT_DIALOG" desc="Accessibility role description for an alert dialog"> alert_dialog </message> - <message name="IDS_AX_ROLE_APPLICATION" desc="accessibility role description for an application"> + <message name="IDS_AX_ROLE_APPLICATION" desc="Accessibility role description for an application"> application </message> - <message name="IDS_AX_ROLE_BLOCKQUOTE" desc="accessibility role description for a blockquote"> + <message name="IDS_AX_ROLE_BLOCKQUOTE" desc="Accessibility role description for a blockquote"> blockquote </message> - <message name="IDS_AX_ROLE_BUSY_INDICATOR" desc="accessibility role description for a busy indicator"> + <message name="IDS_AX_ROLE_BUSY_INDICATOR" desc="Accessibility role description for a busy indicator"> busy indicator </message> - <message name="IDS_AX_ROLE_BUTTON" desc="accessibility role description for a button"> + <message name="IDS_AX_ROLE_BUTTON" desc="Accessibility role description for a button"> button </message> - <message name="IDS_AX_ROLE_BUTTON_DROP_DOWN" desc="accessibility role description for a button that drops down"> + <message name="IDS_AX_ROLE_BUTTON_DROP_DOWN" desc="Accessibility role description for a button that drops down"> drop down button </message> - <message name="IDS_AX_ROLE_CELL" desc="accessibility role description for a cell, like in a table or grid"> + <message name="IDS_AX_ROLE_CELL" desc="Accessibility role description for a cell, like in a table or grid"> cell </message> - <message name="IDS_AX_ROLE_COLOR_WELL" desc="accessibility role description for a color picker"> + <message name="IDS_AX_ROLE_COLOR_WELL" desc="Accessibility role description for a color picker"> color picker </message> - <message name="IDS_AX_ROLE_COLUMN_HEADER" desc="accessibility role description for a column header"> + <message name="IDS_AX_ROLE_COLUMN_HEADER" desc="Accessibility role description for a column header"> column header </message> - <message name="IDS_AX_ROLE_COMBO_BOX" desc="accessibility role description for a combo box, an editable text control with an associated drop-down list"> + <message name="IDS_AX_ROLE_COMBO_BOX" desc="Accessibility role description for a combo box, an editable text control with an associated drop-down list"> combo box </message> - <message name="IDS_AX_ROLE_DATE" desc="accessibility role description for a date picker"> + <message name="IDS_AX_ROLE_DATE" desc="Accessibility role description for a date picker"> date picker </message> - <message name="IDS_AX_ROLE_DATE_TIME" desc="accessibility role description for a date / time picker"> + <message name="IDS_AX_ROLE_DATE_TIME" desc="Accessibility role description for a date / time picker"> date and time picker </message> - <message name="IDS_AX_ROLE_DIALOG" desc="accessibility role description for a dialog"> + <message name="IDS_AX_ROLE_DIALOG" desc="Accessibility role description for a dialog"> dialog </message> - <message name="IDS_AX_ROLE_DIRECTORY" desc="accessibility role description for a directory, for example a table of contents or list of employees"> + <message name="IDS_AX_ROLE_DIRECTORY" desc="Accessibility role description for a directory, for example a table of contents or list of employees"> directory </message> - <message name="IDS_AX_ROLE_DISCLOSURE_TRIANGLE" desc="accessibility role description for a disclosure triangle, a control shaped like a triangle that expands or collapses to show or hide extra content"> + <message name="IDS_AX_ROLE_DISCLOSURE_TRIANGLE" desc="Accessibility role description for a disclosure triangle, a control shaped like a triangle that expands or collapses to show or hide extra content"> disclosure triangle </message> - <message name="IDS_AX_ROLE_DOCUMENT" desc="accessibility role description for a document"> + <message name="IDS_AX_ROLE_DOCUMENT" desc="Accessibility role description for a document"> document </message> - <message name="IDS_AX_ROLE_EMBEDDED_OBJECT" desc="accessibility role description for an embedded object, like a video inside a web page"> + <message name="IDS_AX_ROLE_EMBEDDED_OBJECT" desc="Accessibility role description for an embedded object, like a video inside a web page"> object </message> - <message name="IDS_AX_ROLE_GRAPHIC" desc="accessibility role description for a graphic or image"> + <message name="IDS_AX_ROLE_GRAPHIC" desc="Accessibility role description for a graphic or image"> graphic </message> - <message name="IDS_AX_ROLE_HEADING_WITH_LEVEL" desc="accessibility role description for a heading with a heading level, for example 'heading 1' is the most important heading and 'heading 3' is less important"> + <message name="IDS_AX_ROLE_HEADING_WITH_LEVEL" desc="Accessibility role description for a heading with a heading level, for example 'heading 1' is the most important heading and 'heading 3' is less important"> heading <ph name="HEADING_LEVEL">$1<ex>1</ex></ph> </message> - <message name="IDS_AX_ROLE_INPUT_TIME" desc="accessibility role description for a time picker control"> + <message name="IDS_AX_ROLE_INPUT_TIME" desc="Accessibility role description for a time picker control"> time picker </message> - <message name="IDS_AX_ROLE_LIST_BOX" desc="accessibility role description for a list box control"> + <message name="IDS_AX_ROLE_LIST_BOX" desc="Accessibility role description for a list box control"> list box </message> - <message name="IDS_AX_ROLE_LOG" desc="accessibility role description for an information log, such as a chat log or error log"> + <message name="IDS_AX_ROLE_LOG" desc="Accessibility role description for an information log, such as a chat log or error log"> log </message> - <message name="IDS_AX_ROLE_MARQUEE" desc="accessibility role description for a marquee, such as a stock ticker or ad banner that frequently changes"> + <message name="IDS_AX_ROLE_MARQUEE" desc="Accessibility role description for a marquee, such as a stock ticker or ad banner that frequently changes"> marquee </message> - <message name="IDS_AX_ROLE_MENU" desc="accessibility role description for a menu"> + <message name="IDS_AX_ROLE_MENU" desc="Accessibility role description for a menu"> menu </message> - <message name="IDS_AX_ROLE_MENU_BAR" desc="accessibility role description for a menu bar"> + <message name="IDS_AX_ROLE_MENU_BAR" desc="Accessibility role description for a menu bar"> menu bar </message> - <message name="IDS_AX_ROLE_MENU_BUTTON" desc="accessibility role description for a menu button, a button that opens a menu"> + <message name="IDS_AX_ROLE_MENU_BUTTON" desc="Accessibility role description for a menu button, a button that opens a menu"> menu button </message> - <message name="IDS_AX_ROLE_MENU_ITEM" desc="accessibility role description for a menu item"> + <message name="IDS_AX_ROLE_MENU_ITEM" desc="Accessibility role description for a menu item"> menu item </message> - <message name="IDS_AX_ROLE_METER" desc="accessibility role description for a meter, for example a temperature indicator or progress bar"> + <message name="IDS_AX_ROLE_METER" desc="Accessibility role description for a meter, for example a temperature indicator or progress bar"> meter </message> - <message name="IDS_AX_ROLE_NOTE" desc="accessibility role description for a note"> + <message name="IDS_AX_ROLE_NOTE" desc="Accessibility role description for a note"> note </message> - <message name="IDS_AX_ROLE_OUTLINE" desc="accessibility role description for an outline, a presentation of information in a tree-like structure"> + <message name="IDS_AX_ROLE_OUTLINE" desc="Accessibility role description for an outline, a presentation of information in a tree-like structure"> outline </message> - <message name="IDS_AX_ROLE_POP_UP_BUTTON" desc="accessibility role description for a pop up button"> + <message name="IDS_AX_ROLE_POP_UP_BUTTON" desc="Accessibility role description for a pop up button"> pop up button </message> - <message name="IDS_AX_ROLE_PROGRESS_INDICATOR" desc="accessibility role description for a progress indicator"> + <message name="IDS_AX_ROLE_PROGRESS_INDICATOR" desc="Accessibility role description for a progress indicator"> progress indicator </message> - <message name="IDS_AX_ROLE_RADIO" desc="accessibility role description for a radio button"> + <message name="IDS_AX_ROLE_RADIO" desc="Accessibility role description for a radio button"> radio button </message> - <message name="IDS_AX_ROLE_RADIO_GROUP" desc="accessibility role description for a group of related radio buttons"> + <message name="IDS_AX_ROLE_RADIO_GROUP" desc="Accessibility role description for a group of related radio buttons"> radio group </message> - <message name="IDS_AX_ROLE_ROW_HEADER" desc="accessibility role description for a row header in a table"> + <message name="IDS_AX_ROLE_ROW_HEADER" desc="Accessibility role description for a row header in a table"> row header </message> - <message name="IDS_AX_ROLE_RULER" desc="accessibility role description for a ruler"> + <message name="IDS_AX_ROLE_RULER" desc="Accessibility role description for a ruler"> ruler </message> - <message name="IDS_AX_ROLE_SCROLL_BAR" desc="accessibility role description for a scroll bar"> + <message name="IDS_AX_ROLE_SCROLL_BAR" desc="Accessibility role description for a scroll bar"> scroll bar </message> - <message name="IDS_AX_ROLE_SEARCH" desc="accessibility role description for the section of a web page containing controls for searching the page or site"> + <message name="IDS_AX_ROLE_SEARCH" desc="Accessibility role description for the section of a web page containing controls for searching the page or site"> search </message> - <message name="IDS_AX_ROLE_SLIDER" desc="accessibility role description for a slider"> + <message name="IDS_AX_ROLE_SLIDER" desc="Accessibility role description for a slider"> slider </message> - <message name="IDS_AX_ROLE_SPIN_BUTTON" desc="accessibility role description for a spin button, a control containing a numerical value that can be incremented or decremented by 1"> + <message name="IDS_AX_ROLE_SPIN_BUTTON" desc="Accessibility role description for a spin button, a control containing a numerical value that can be incremented or decremented by 1"> spin button </message> - <message name="IDS_AX_ROLE_SPLITTER" desc="accessibility role description for a splitter, a control that splits the window in two pieces and can usually be dragged"> + <message name="IDS_AX_ROLE_SPLITTER" desc="Accessibility role description for a splitter, a control that splits the window in two pieces and can usually be dragged"> splitter </message> - <message name="IDS_AX_ROLE_TAB" desc="accessibility role description for a tab"> + <message name="IDS_AX_ROLE_TAB" desc="Accessibility role description for a tab"> tab </message> - <message name="IDS_AX_ROLE_TABLE" desc="accessibility role description for a table"> + <message name="IDS_AX_ROLE_TABLE" desc="Accessibility role description for a table"> table </message> - <message name="IDS_AX_ROLE_TAB_LIST" desc="accessibility role description for a tab list"> + <message name="IDS_AX_ROLE_TAB_LIST" desc="Accessibility role description for a tab list"> tab list </message> - <message name="IDS_AX_ROLE_TAB_PANEL" desc="accessibility role description for a tab panel, the part of the window that changes when selecting a new tab"> + <message name="IDS_AX_ROLE_TAB_PANEL" desc="Accessibility role description for a tab panel, the part of the window that changes when selecting a new tab"> tab panel </message> - <message name="IDS_AX_ROLE_TIME" desc="accessibility role description for a time"> + <message name="IDS_AX_ROLE_TIME" desc="Accessibility role description for a time"> time </message> - <message name="IDS_AX_ROLE_TIMER" desc="accessibility role description for a timer"> + <message name="IDS_AX_ROLE_TIMER" desc="Accessibility role description for a timer"> timer </message> - <message name="IDS_AX_ROLE_TOOLBAR" desc="accessibility role description for a toolbar"> + <message name="IDS_AX_ROLE_TOOLBAR" desc="Accessibility role description for a toolbar"> toolbar </message> - <message name="IDS_AX_ROLE_TOOLTIP" desc="accessibility role description for a tooltip"> + <message name="IDS_AX_ROLE_TOOLTIP" desc="Accessibility role description for a tooltip"> tooltip </message> - <message name="IDS_AX_ROLE_TREE" desc="accessibility role description for a tree"> + <message name="IDS_AX_ROLE_TREE" desc="Accessibility role description for a tree"> tree </message> - <message name="IDS_AX_ROLE_TREE_GRID" desc="accessibility role description for a tree grid"> + <message name="IDS_AX_ROLE_TREE_GRID" desc="Accessibility role description for a tree grid"> tree grid </message> - <message name="IDS_AX_ROLE_TREE_ITEM" desc="accessibility role description for a tree item"> + <message name="IDS_AX_ROLE_TREE_ITEM" desc="Accessibility role description for a tree item"> tree item </message> </if> @@ -539,63 +539,63 @@ video </message> - <message name="IDS_AX_MEDIA_MUTE_BUTTON" desc="accessibility role description for mute button"> + <message name="IDS_AX_MEDIA_MUTE_BUTTON" desc="Accessibility role description for mute button"> mute </message> - <message name="IDS_AX_MEDIA_UNMUTE_BUTTON" desc="accessibility role description for turn mute off button"> + <message name="IDS_AX_MEDIA_UNMUTE_BUTTON" desc="Accessibility role description for turn mute off button"> unmute </message> - <message name="IDS_AX_MEDIA_PLAY_BUTTON" desc="accessibility role description for play button"> + <message name="IDS_AX_MEDIA_PLAY_BUTTON" desc="Accessibility role description for play button"> play </message> - <message name="IDS_AX_MEDIA_PAUSE_BUTTON" desc="accessibility role description for pause button"> + <message name="IDS_AX_MEDIA_PAUSE_BUTTON" desc="Accessibility role description for pause button"> pause </message> - <message name="IDS_AX_MEDIA_SLIDER" desc="accessibility role description for timeline slider"> + <message name="IDS_AX_MEDIA_SLIDER" desc="Accessibility role description for timeline slider"> movie time </message> - <message name="IDS_AX_MEDIA_SLIDER_THUMB" desc="accessibility role description for timeline thumb"> + <message name="IDS_AX_MEDIA_SLIDER_THUMB" desc="Accessibility role description for timeline thumb"> movie timeline thumb </message> - <message name="IDS_AX_MEDIA_CURRENT_TIME_DISPLAY" desc="accessibility role description for elapsed time display"> + <message name="IDS_AX_MEDIA_CURRENT_TIME_DISPLAY" desc="Accessibility role description for elapsed time display"> elapsed time </message> - <message name="IDS_AX_MEDIA_TIME_REMAINING_DISPLAY" desc="accessibility role description for time remaining display"> + <message name="IDS_AX_MEDIA_TIME_REMAINING_DISPLAY" desc="Accessibility role description for time remaining display"> remaining time </message> - <message name="IDS_AX_MEDIA_STATUS_DISPLAY" desc="accessibility role description for movie status"> + <message name="IDS_AX_MEDIA_STATUS_DISPLAY" desc="Accessibility role description for movie status"> status </message> - <message name="IDS_AX_MEDIA_ENTER_FULL_SCREEN_BUTTON" desc="accessibility role description for enter fullscreen button"> + <message name="IDS_AX_MEDIA_ENTER_FULL_SCREEN_BUTTON" desc="Accessibility role description for enter fullscreen button"> enter full screen </message> - <message name="IDS_AX_MEDIA_EXIT_FULL_SCREEN_BUTTON" desc="accessibility role description for exit fullscreen button"> + <message name="IDS_AX_MEDIA_EXIT_FULL_SCREEN_BUTTON" desc="Accessibility role description for exit fullscreen button"> exit full screen </message> - <message name="IDS_AX_MEDIA_SHOW_CLOSED_CAPTIONS_BUTTON" desc="accessibility role description for show closed captions button"> + <message name="IDS_AX_MEDIA_SHOW_CLOSED_CAPTIONS_BUTTON" desc="Accessibility role description for show closed captions button"> show closed captions </message> - <message name="IDS_AX_MEDIA_HIDE_CLOSED_CAPTIONS_BUTTON" desc="accessibility role description for hide closed captions button"> + <message name="IDS_AX_MEDIA_HIDE_CLOSED_CAPTIONS_BUTTON" desc="Accessibility role description for hide closed captions button"> hide closed captions </message> - <message name="IDS_AX_MEDIA_CAST_OFF_BUTTON" desc="accessibility role description for remote playback button"> + <message name="IDS_AX_MEDIA_CAST_OFF_BUTTON" desc="Accessibility role description for remote playback button"> play on remote device </message> - <message name="IDS_AX_MEDIA_CAST_ON_BUTTON" desc="accessibility role description for remote playback control button"> + <message name="IDS_AX_MEDIA_CAST_ON_BUTTON" desc="Accessibility role description for remote playback control button"> control remote playback </message> @@ -615,71 +615,71 @@ video </message> - <message name="IDS_AX_MEDIA_MUTE_BUTTON_HELP" desc="accessibility help description for mute button"> + <message name="IDS_AX_MEDIA_MUTE_BUTTON_HELP" desc="Accessibility help description for mute button"> mute audio track </message> - <message name="IDS_AX_MEDIA_UNMUTE_BUTTON_HELP" desc="accessibility help description for turn mute off button"> + <message name="IDS_AX_MEDIA_UNMUTE_BUTTON_HELP" desc="Accessibility help description for turn mute off button"> unmute audio track </message> - <message name="IDS_AX_MEDIA_PLAY_BUTTON_HELP" desc="accessibility help description for play button"> + <message name="IDS_AX_MEDIA_PLAY_BUTTON_HELP" desc="Accessibility help description for play button"> begin playback </message> - <message name="IDS_AX_MEDIA_PAUSE_BUTTON_HELP" desc="accessibility help description for pause button"> + <message name="IDS_AX_MEDIA_PAUSE_BUTTON_HELP" desc="Accessibility help description for pause button"> pause playback </message> - <message name="IDS_AX_MEDIA_AUDIO_SLIDER_HELP" desc="accessibility help description for audio timeline slider"> + <message name="IDS_AX_MEDIA_AUDIO_SLIDER_HELP" desc="Accessibility help description for audio timeline slider"> audio time scrubber </message> - <message name="IDS_AX_MEDIA_VIDEO_SLIDER_HELP" desc="accessibility help description for video timeline slider"> + <message name="IDS_AX_MEDIA_VIDEO_SLIDER_HELP" desc="Accessibility help description for video timeline slider"> movie time scrubber </message> - <message name="IDS_AX_MEDIA_SLIDER_THUMB_HELP" desc="accessibility help description for timeline thumb"> + <message name="IDS_AX_MEDIA_SLIDER_THUMB_HELP" desc="Accessibility help description for timeline thumb"> movie time scrubber thumb </message> - <message name="IDS_AX_MEDIA_CURRENT_TIME_DISPLAY_HELP" desc="accessibility help description for elapsed time display"> + <message name="IDS_AX_MEDIA_CURRENT_TIME_DISPLAY_HELP" desc="Accessibility help description for elapsed time display"> current time in seconds </message> - <message name="IDS_AX_MEDIA_TIME_REMAINING_DISPLAY_HELP" desc="accessibility help description for time remaining display"> - number of seconds ofmovie remaining + <message name="IDS_AX_MEDIA_TIME_REMAINING_DISPLAY_HELP" desc="Accessibility help description for time remaining display"> + number of seconds of movie remaining </message> - <message name="IDS_AX_MEDIA_STATUS_DISPLAY_HELP" desc="accessibility help description for movie status"> + <message name="IDS_AX_MEDIA_STATUS_DISPLAY_HELP" desc="Accessibility help description for movie status"> current movie status </message> - <message name="IDS_AX_MEDIA_ENTER_FULL_SCREEN_BUTTON_HELP" desc="accessibility help description for enter fullscreen button"> + <message name="IDS_AX_MEDIA_ENTER_FULL_SCREEN_BUTTON_HELP" desc="Accessibility help description for enter fullscreen button"> play movie in full screen mode </message> - <message name="IDS_AX_MEDIA_EXIT_FULL_SCREEN_BUTTON_HELP" desc="accessibility help description for exit fullscreen button"> + <message name="IDS_AX_MEDIA_EXIT_FULL_SCREEN_BUTTON_HELP" desc="Accessibility help description for exit fullscreen button"> exit full screen </message> - <message name="IDS_AX_MEDIA_SHOW_CLOSED_CAPTIONS_BUTTON_HELP" desc="accessibility help description for show closed captions button"> + <message name="IDS_AX_MEDIA_SHOW_CLOSED_CAPTIONS_BUTTON_HELP" desc="Accessibility help description for show closed captions button"> start displaying closed captions </message> - <message name="IDS_AX_MEDIA_HIDE_CLOSED_CAPTIONS_BUTTON_HELP" desc="accessibility help description for hide closed captions button"> + <message name="IDS_AX_MEDIA_HIDE_CLOSED_CAPTIONS_BUTTON_HELP" desc="Accessibility help description for hide closed captions button"> stop displaying closed captions </message> - <message name="IDS_AX_MEDIA_CAST_OFF_BUTTON_HELP" desc="accessibility help description for remote playback button"> + <message name="IDS_AX_MEDIA_CAST_OFF_BUTTON_HELP" desc="Accessibility help description for remote playback button"> play on remote device </message> - <message name="IDS_AX_MEDIA_CAST_ON_BUTTON_HELP" desc="accessibility help description for remote playback control button"> + <message name="IDS_AX_MEDIA_CAST_ON_BUTTON_HELP" desc="Accessibility help description for remote playback control button"> control remote playback </message> - <message name="IDS_AX_MEDIA_OVERFLOW_BUTTON_HELP" desc="accessibility help description for overflow button."> + <message name="IDS_AX_MEDIA_OVERFLOW_BUTTON_HELP" desc="Accessibility help description for overflow button."> more options </message> @@ -707,7 +707,7 @@ Year </message> - <message name="IDS_FORM_INPUT_WEEK_TEMPLATE" desc="A specfic week (1-53) in a specific year shown in a form control"> + <message name="IDS_FORM_INPUT_WEEK_TEMPLATE" desc="A specific week (1-53) in a specific year shown in a form control"> Week <ph name="WEEKNUMBER">$2<ex>51</ex></ph>, <ph name="YEAR">$1<ex>2012</ex></ph> </message> <message name="IDS_FORM_VALIDATION_VALUE_MISSING_MULTIPLE_FILE" desc="Heading or short sentence shown when a file upload control in a webpage requires one or more files selected, but the user didn't specify any files.">
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc index 1a48362..a4e0e2b1 100644 --- a/content/browser/browser_main_loop.cc +++ b/content/browser/browser_main_loop.cc
@@ -1618,21 +1618,11 @@ if (base::FeatureList::IsEnabled(features::kMemoryCoordinator)) { // Disable MemoryPressureListener when memory coordinator is enabled. base::MemoryPressureListener::SetNotificationsSuppressed(true); - // base::Unretained is safe because the lifetime of MemoryCoordinator is - // tied to the lifetime of the browser process. - base::MemoryCoordinatorProxy::GetInstance()-> - SetGetCurrentMemoryStateCallback(base::Bind( - &MemoryCoordinatorImpl::GetCurrentMemoryState, - base::Unretained(MemoryCoordinatorImpl::GetInstance()))); - base::MemoryCoordinatorProxy::GetInstance()-> - SetSetCurrentMemoryStateForTestingCallback(base::Bind( - &MemoryCoordinatorImpl::SetCurrentMemoryStateForTesting, - base::Unretained(MemoryCoordinatorImpl::GetInstance()))); - + auto* coordinator = MemoryCoordinatorImpl::GetInstance(); if (memory_pressure_monitor_) { memory_pressure_monitor_->SetDispatchCallback( base::Bind(&MemoryCoordinatorImpl::RecordMemoryPressure, - base::Unretained(MemoryCoordinatorImpl::GetInstance()))); + base::Unretained(coordinator))); } } }
diff --git a/content/browser/memory/memory_coordinator_impl.cc b/content/browser/memory/memory_coordinator_impl.cc index b8e34d26..7dc87404 100644 --- a/content/browser/memory/memory_coordinator_impl.cc +++ b/content/browser/memory/memory_coordinator_impl.cc
@@ -173,6 +173,7 @@ memory_monitor_(std::move(memory_monitor)), state_updater_(base::MakeUnique<MemoryStateUpdater>(this, task_runner)) { DCHECK(memory_monitor_.get()); + base::MemoryCoordinatorProxy::SetMemoryCoordinator(this); } MemoryCoordinatorImpl::~MemoryCoordinatorImpl() {}
diff --git a/content/browser/memory/memory_coordinator_impl.h b/content/browser/memory/memory_coordinator_impl.h index 250d586..eb5bf04 100644 --- a/content/browser/memory/memory_coordinator_impl.h +++ b/content/browser/memory/memory_coordinator_impl.h
@@ -7,6 +7,7 @@ #include "base/callback.h" #include "base/memory/memory_coordinator_client.h" +#include "base/memory/memory_coordinator_proxy.h" #include "base/memory/memory_pressure_monitor.h" #include "base/memory/singleton.h" #include "base/single_thread_task_runner.h" @@ -33,7 +34,8 @@ // MemoryCoordinatorImpl is an implementation of MemoryCoordinator. // The current implementation uses MemoryStateUpdater to update the global // memory state. See comments in MemoryStateUpdater for details. -class CONTENT_EXPORT MemoryCoordinatorImpl : public MemoryCoordinator, +class CONTENT_EXPORT MemoryCoordinatorImpl : public base::MemoryCoordinator, + public MemoryCoordinator, public NotificationObserver, public base::NonThreadSafe { public: @@ -75,10 +77,10 @@ // Returns the browser's current memory state. Note that the current state // could be different from the global memory state as the browser won't be // suspended. - MemoryState GetCurrentMemoryState() const; + MemoryState GetCurrentMemoryState() const override; // Sets the global memory state for testing. - void SetCurrentMemoryStateForTesting(MemoryState memory_state); + void SetCurrentMemoryStateForTesting(MemoryState memory_state) override; // MemoryCoordinator implementation: MemoryState GetStateForProcess(base::ProcessHandle handle) override;
diff --git a/content/browser/memory/memory_coordinator_impl_unittest.cc b/content/browser/memory/memory_coordinator_impl_unittest.cc index 3e83a12..63edb99 100644 --- a/content/browser/memory/memory_coordinator_impl_unittest.cc +++ b/content/browser/memory/memory_coordinator_impl_unittest.cc
@@ -178,15 +178,6 @@ task_runner_ = new base::TestMockTimeTaskRunner(); coordinator_.reset(new TestMemoryCoordinatorImpl(task_runner_)); - - base::MemoryCoordinatorProxy::GetInstance()-> - SetGetCurrentMemoryStateCallback(base::Bind( - &MemoryCoordinatorImpl::GetCurrentMemoryState, - base::Unretained(coordinator_.get()))); - base::MemoryCoordinatorProxy::GetInstance()-> - SetSetCurrentMemoryStateForTestingCallback(base::Bind( - &MemoryCoordinatorImpl::SetCurrentMemoryStateForTesting, - base::Unretained(coordinator_.get()))); } MockMemoryMonitor* GetMockMemoryMonitor() {
diff --git a/content/public/test/memory_coordinator_test_utils.cc b/content/public/test/memory_coordinator_test_utils.cc index 5dd9d41..b779289 100644 --- a/content/public/test/memory_coordinator_test_utils.cc +++ b/content/public/test/memory_coordinator_test_utils.cc
@@ -11,14 +11,8 @@ namespace content { void SetUpMemoryCoordinatorProxyForTesting() { - base::MemoryCoordinatorProxy::GetInstance()-> - SetGetCurrentMemoryStateCallback(base::Bind( - &MemoryCoordinatorImpl::GetCurrentMemoryState, - base::Unretained(MemoryCoordinatorImpl::GetInstance()))); - base::MemoryCoordinatorProxy::GetInstance()-> - SetSetCurrentMemoryStateForTestingCallback(base::Bind( - &MemoryCoordinatorImpl::SetCurrentMemoryStateForTesting, - base::Unretained(MemoryCoordinatorImpl::GetInstance()))); + // Make sure that MemoryCoordinatorImpl is initialized. + MemoryCoordinatorImpl::GetInstance(); } } // namespace content
diff --git a/content/renderer/media/recorder/media_recorder_handler.cc b/content/renderer/media/recorder/media_recorder_handler.cc index 3c3d2e8..9fcd2b9c 100644 --- a/content/renderer/media/recorder/media_recorder_handler.cc +++ b/content/renderer/media/recorder/media_recorder_handler.cc
@@ -164,23 +164,23 @@ timeslice_ = TimeDelta::FromMilliseconds(timeslice); slice_origin_timestamp_ = TimeTicks::Now(); - blink::WebVector<blink::WebMediaStreamTrack> video_tracks, audio_tracks; - media_stream_.videoTracks(video_tracks); - media_stream_.audioTracks(audio_tracks); + media_stream_.videoTracks(video_tracks_); + media_stream_.audioTracks(audio_tracks_); - if (video_tracks.isEmpty() && audio_tracks.isEmpty()) { + if (video_tracks_.isEmpty() && audio_tracks_.isEmpty()) { LOG(WARNING) << __func__ << ": no media tracks."; return false; } const bool use_video_tracks = - !video_tracks.isEmpty() && video_tracks[0].isEnabled() && - video_tracks[0].source().getReadyState() != + !video_tracks_.isEmpty() && video_tracks_[0].isEnabled() && + video_tracks_[0].source().getReadyState() != blink::WebMediaStreamSource::ReadyStateEnded; const bool use_audio_tracks = - !audio_tracks.isEmpty() && MediaStreamAudioTrack::From(audio_tracks[0]) && - audio_tracks[0].isEnabled() && - audio_tracks[0].source().getReadyState() != + !audio_tracks_.isEmpty() && + MediaStreamAudioTrack::From(audio_tracks_[0]) && + audio_tracks_[0].isEnabled() && + audio_tracks_[0].source().getReadyState() != blink::WebMediaStreamSource::ReadyStateEnded; if (!use_video_tracks && !use_audio_tracks) { @@ -196,10 +196,10 @@ if (use_video_tracks) { // TODO(mcasas): The muxer API supports only one video track. Extend it to // several video tracks, see http://crbug.com/528523. - LOG_IF(WARNING, video_tracks.size() > 1u) + LOG_IF(WARNING, video_tracks_.size() > 1u) << "Recording multiple video tracks is not implemented. " << "Only recording first video track."; - const blink::WebMediaStreamTrack& video_track = video_tracks[0]; + const blink::WebMediaStreamTrack& video_track = video_tracks_[0]; if (video_track.isNull()) return false; @@ -214,10 +214,10 @@ if (use_audio_tracks) { // TODO(ajose): The muxer API supports only one audio track. Extend it to // several tracks. - LOG_IF(WARNING, audio_tracks.size() > 1u) + LOG_IF(WARNING, audio_tracks_.size() > 1u) << "Recording multiple audio" << " tracks is not implemented. Only recording first audio track."; - const blink::WebMediaStreamTrack& audio_track = audio_tracks[0]; + const blink::WebMediaStreamTrack& audio_track = audio_tracks_[0]; if (audio_track.isNull()) return false; @@ -237,6 +237,7 @@ DCHECK(main_render_thread_checker_.CalledOnValidThread()); // Don't check |recording_| since we can go directly from pause() to stop(). + weak_factory_.InvalidateWeakPtrs(); recording_ = false; timeslice_ = TimeDelta::FromMilliseconds(0); video_recorders_.clear(); @@ -272,6 +273,11 @@ TimeTicks timestamp, bool is_key_frame) { DCHECK(main_render_thread_checker_.CalledOnValidThread()); + + if (UpdateTracksAndCheckIfChanged()) { + client_->onError("Amount of tracks in MediaStream has changed."); + return; + } if (!webm_muxer_) return; if (!webm_muxer_->OnEncodedVideo(params, std::move(encoded_data), timestamp, @@ -286,6 +292,11 @@ std::unique_ptr<std::string> encoded_data, base::TimeTicks timestamp) { DCHECK(main_render_thread_checker_.CalledOnValidThread()); + + if (UpdateTracksAndCheckIfChanged()) { + client_->onError("Amount of tracks in MediaStream has changed."); + return; + } if (!webm_muxer_) return; if (!webm_muxer_->OnEncodedAudio(params, std::move(encoded_data), @@ -313,6 +324,41 @@ (now - TimeTicks::UnixEpoch()).InMillisecondsF()); } +bool MediaRecorderHandler::UpdateTracksAndCheckIfChanged() { + DCHECK(main_render_thread_checker_.CalledOnValidThread()); + + blink::WebVector<blink::WebMediaStreamTrack> video_tracks, audio_tracks; + media_stream_.videoTracks(video_tracks); + media_stream_.audioTracks(audio_tracks); + + bool video_tracks_changed = video_tracks_.size() != video_tracks.size(); + bool audio_tracks_changed = audio_tracks_.size() != audio_tracks.size(); + + if (!video_tracks_changed) { + for (size_t i = 0; i < video_tracks.size(); ++i) { + if (video_tracks_[i].id() != video_tracks[i].id()) { + video_tracks_changed = true; + break; + } + } + } + if (!video_tracks_changed && !audio_tracks_changed) { + for (size_t i = 0; i < audio_tracks.size(); ++i) { + if (audio_tracks_[i].id() != audio_tracks[i].id()) { + audio_tracks_changed = true; + break; + } + } + } + + if (video_tracks_changed) + video_tracks_ = video_tracks; + if (audio_tracks_changed) + audio_tracks_ = audio_tracks; + + return video_tracks_changed || audio_tracks_changed; +} + void MediaRecorderHandler::OnVideoFrameForTesting( const scoped_refptr<media::VideoFrame>& frame, const TimeTicks& timestamp) {
diff --git a/content/renderer/media/recorder/media_recorder_handler.h b/content/renderer/media/recorder/media_recorder_handler.h index 58d3d6f..d7cf39da 100644 --- a/content/renderer/media/recorder/media_recorder_handler.h +++ b/content/renderer/media/recorder/media_recorder_handler.h
@@ -74,6 +74,9 @@ base::TimeTicks timestamp); void WriteData(base::StringPiece data); + // Updates |video_tracks_|,|audio_tracks_| and returns true if any changed. + bool UpdateTracksAndCheckIfChanged(); + void OnVideoFrameForTesting(const scoped_refptr<media::VideoFrame>& frame, const base::TimeTicks& timestamp); void OnAudioBusForTesting(const media::AudioBus& audio_bus, @@ -98,6 +101,8 @@ bool recording_; blink::WebMediaStream media_stream_; // The MediaStream being recorded. + blink::WebVector<blink::WebMediaStreamTrack> video_tracks_; + blink::WebVector<blink::WebMediaStreamTrack> audio_tracks_; // |client_| is a weak pointer, and is valid for the lifetime of this object. blink::WebMediaRecorderHandlerClient* client_;
diff --git a/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc b/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc index bbfdda1..d310095 100644 --- a/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc +++ b/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
@@ -105,10 +105,10 @@ // Returns the correct fragment shader id to evaluate the copy operation for // the premultiply alpha pixel store settings and target. ShaderId GetFragmentShaderId(bool premultiply_alpha, - bool unpremultiply_alpha, - GLenum target, - GLenum source_format, - GLenum dest_format) { + bool unpremultiply_alpha, + GLenum target, + GLenum source_format, + GLenum dest_format) { unsigned alphaIndex = 0; unsigned targetIndex = 0; unsigned sourceFormatIndex = 0;
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index 80d7234..c823faa 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -2028,8 +2028,11 @@ bool CanUseCopyTextureCHROMIUMInternalFormat(GLenum dest_internal_format); CopyTextureMethod ValidateCopyTextureCHROMIUMInternalFormats( const char* function_name, - TextureRef* source_texture_ref, GLint source_level, + GLenum source_internal_format, + GLenum source_type, + GLenum dest_target, + GLint dest_level, GLenum dest_internal_format); bool ValidateCompressedCopyTextureCHROMIUM(const char* function_name, TextureRef* source_texture_ref, @@ -16270,15 +16273,12 @@ CopyTextureMethod GLES2DecoderImpl::ValidateCopyTextureCHROMIUMInternalFormats( const char* function_name, - TextureRef* source_texture_ref, GLint source_level, + GLenum source_internal_format, + GLenum source_type, + GLenum dest_target, + GLint dest_level, GLenum dest_internal_format) { - GLenum source_type = 0; - GLenum source_internal_format = 0; - Texture* source_texture = source_texture_ref->texture(); - source_texture->GetLevelType(source_texture->target(), source_level, - &source_type, &source_internal_format); - bool valid_dest_format = false; // TODO(qiankun.miao@intel.com): ALPHA, LUMINANCE and LUMINANCE_ALPHA formats // are not supported on GL core profile. See crbug.com/577144. Enable the @@ -16372,12 +16372,26 @@ dest_internal_format != GL_BGRA8_EXT && ValidateCopyTexFormatHelper(dest_internal_format, source_internal_format, source_type, &output_error_msg); - if (source_format_color_renderable && copy_tex_image_format_valid) - return DIRECT_COPY; - if (dest_format_color_renderable) + // TODO(qiankun.miao@intel.com): for WebGL 2.0 or OpenGL ES 3.0, both + // DIRECT_DRAW path for dest_level > 0 and DIRECT_COPY path for source_level > + // 0 are not available due to a framebuffer completeness bug: + // crbug.com/678526. Once the bug is fixed, the limitation for WebGL 2.0 and + // OpenGL ES 3.0 can be lifted. + // For WebGL 1.0 or OpenGL ES 2.0, DIRECT_DRAW path isn't available for + // dest_level > 0 due to level > 0 isn't supported by glFramebufferTexture2D + // in ES2 context. DIRECT_DRAW path isn't available for cube map dest texture + // either due to it may be cube map incomplete. Go to DRAW_AND_COPY path in + // these cases. + if (source_format_color_renderable && copy_tex_image_format_valid && + source_level == 0) + return DIRECT_COPY; + if (dest_format_color_renderable && dest_level == 0 && + dest_target != GL_TEXTURE_CUBE_MAP) return DIRECT_DRAW; + // Draw to a fbo attaching level 0 of an intermediate texture, + // then copy from the fbo to dest texture level with glCopyTexImage2D. return DRAW_AND_COPY; } @@ -16475,31 +16489,14 @@ } CopyTextureMethod method = ValidateCopyTextureCHROMIUMInternalFormats( - kFunctionName, source_texture_ref, source_level, internal_format); + kFunctionName, source_level, source_internal_format, source_type, + dest_binding_target, dest_level, internal_format); // INVALID_OPERATION is already generated by // ValidateCopyTextureCHROMIUMInternalFormats. if (method == NOT_COPYABLE) { return; } - // Draw to a fbo attaching level 0 of an intermediate texture, - // then copy from the fbo to dest texture level with glCopyTexImage2D. - // For WebGL 1.0 or OpenGL ES 2.0, DIRECT_DRAW path isn't available for - // dest_level > 0 due to level > 0 isn't supported by glFramebufferTexture2D - // in ES2 context. DIRECT_DRAW path isn't available for cube map dest texture - // either due to it may be cube map incomplete. Go to DRAW_AND_COPY path in - // these cases. - // TODO(qiankun.miao@intel.com): for WebGL 2.0 or OpenGL ES 3.0, both - // DIRECT_DRAW path for dest_level > 0 and DIRECT_COPY path for source_level > - // 0 are not available due to a framebuffer completeness bug: - // crbug.com/678526. Once the bug is fixed, the limitation for WebGL 2.0 and - // OpenGL ES 3.0 can be lifted. - if (((dest_level > 0 || dest_binding_target == GL_TEXTURE_CUBE_MAP) && - method == DIRECT_DRAW) || - (source_level > 0 && method == DIRECT_COPY)) { - method = DRAW_AND_COPY; - } - if (feature_info_->feature_flags().desktop_srgb_support) { bool enable_framebuffer_srgb = GLES2Util::GetColorEncodingFromInternalFormat(source_internal_format) == @@ -16744,7 +16741,8 @@ } CopyTextureMethod method = ValidateCopyTextureCHROMIUMInternalFormats( - kFunctionName, source_texture_ref, source_level, dest_internal_format); + kFunctionName, source_level, source_internal_format, source_type, + dest_binding_target, dest_level, dest_internal_format); // INVALID_OPERATION is already generated by // ValidateCopyTextureCHROMIUMInternalFormats. if (method == NOT_COPYABLE) { @@ -16763,24 +16761,6 @@ } #endif - // Draw to a fbo attaching level 0 of an intermediate texture, - // then copy from the fbo to dest texture level with glCopyTexImage2D. - // For WebGL 1.0 or OpenGL ES 2.0, DIRECT_DRAW path isn't available for - // dest_level > 0 due to level > 0 isn't supported by glFramebufferTexture2D - // in ES2 context. DIRECT_DRAW path isn't available for cube map dest texture - // either due to it may be cube map incomplete. Go to DRAW_AND_COPY path in - // these cases. - // TODO(qiankun.miao@intel.com): for WebGL 2.0 or OpenGL ES 3.0, both - // DIRECT_DRAW path for dest_level > 0 and DIRECT_COPY path for source_level > - // 0 are not available due to a framebuffer completeness bug: - // crbug.com/678526. Once the bug is fixed, the limitation for WebGL 2.0 and - // OpenGL ES 3.0 can be lifted. - if (((dest_level > 0 || dest_binding_target == GL_TEXTURE_CUBE_MAP) && - method == DIRECT_DRAW) || - (source_level > 0 && method == DIRECT_COPY)) { - method = DRAW_AND_COPY; - } - if (feature_info_->feature_flags().desktop_srgb_support) { bool enable_framebuffer_srgb = GLES2Util::GetColorEncodingFromInternalFormat(source_internal_format) ==
diff --git a/media/capture/video/video_capture_device_unittest.cc b/media/capture/video/video_capture_device_unittest.cc index 059a129d..477c911 100644 --- a/media/capture/video/video_capture_device_unittest.cc +++ b/media/capture/video/video_capture_device_unittest.cc
@@ -158,7 +158,8 @@ base::Callback<void(const VideoCaptureFormat&)> frame_cb_; }; -class MockImageCaptureClient : public base::RefCounted<MockImageCaptureClient> { +class MockImageCaptureClient + : public base::RefCountedThreadSafe<MockImageCaptureClient> { public: // GMock doesn't support move-only arguments, so we use this forward method. void DoOnPhotoTaken(mojom::BlobPtr blob) { @@ -197,7 +198,7 @@ const mojom::PhotoCapabilities* capabilities() { return capabilities_.get(); } private: - friend class base::RefCounted<MockImageCaptureClient>; + friend class base::RefCountedThreadSafe<MockImageCaptureClient>; virtual ~MockImageCaptureClient() {} mojom::PhotoCapabilitiesPtr capabilities_;
diff --git a/ppapi/proxy/raw_var_data.cc b/ppapi/proxy/raw_var_data.cc index 9dbd75b..117e356 100644 --- a/ppapi/proxy/raw_var_data.cc +++ b/ppapi/proxy/raw_var_data.cc
@@ -198,6 +198,8 @@ return nullptr; PP_VarType var_type = static_cast<PP_VarType>(type); result->data_.push_back(base::WrapUnique(RawVarData::Create(var_type))); + if (!result->data_.back()) + return nullptr; if (!result->data_.back()->Read(var_type, m, iter)) return nullptr; }
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 0b8ce17..f4f1d110 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -1169,8 +1169,7 @@ crbug.com/492664 external/csswg-test/css-writing-modes-3/line-box-direction-vrl-009.xht [ Failure ] crbug.com/637255 [ Win10 ] media/video-transformed.html [ Pass Failure ] -# TODO(robertphillips@) restore after Skia DEPS roll -#crbug.com/637255 [ Win10 ] media/video-layer-crash.html [ Pass Failure ] +crbug.com/637255 [ Win10 ] media/video-layer-crash.html [ Pass Failure ] crbug.com/691045 media/autoplay-muted.html [ Pass Timeout ] @@ -2366,4 +2365,3 @@ crbug.com/691423 [ Mac ] fast/frames/location-change-no-file-access.html [ Failure Pass ] # Sheriff failures 2017-02-16 -crbug.com/692733 [ Win7 Debug ] compositing/overflow/overflow-positioning.html [ Failure Pass ]
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/angle-type-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/custom-properties/angle-type-interpolation-expected.txt new file mode 100644 index 0000000..186e589 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/angle-type-interpolation-expected.txt
@@ -0,0 +1,109 @@ +This is a testharness.js-based test. +PASS This test uses interpolation-test.js. +FAIL CSS Transitions: property <--angle> from neutral to [20deg] at (-0.3) is [20deg] assert_equals: expected "7deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from neutral to [20deg] at (0) is [20deg] assert_equals: expected "10deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from neutral to [20deg] at (0.5) is [20deg] assert_equals: expected "15deg " but got "20deg " +PASS CSS Transitions: property <--angle> from neutral to [20deg] at (1) is [20deg] +FAIL CSS Transitions: property <--angle> from neutral to [20deg] at (1.5) is [20deg] assert_equals: expected "25deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from [initial] to [20deg] at (-0.3) is [20deg] assert_equals: expected "46deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from [initial] to [20deg] at (0) is [20deg] assert_equals: expected "40deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from [initial] to [20deg] at (0.5) is [20deg] assert_equals: expected "30deg " but got "20deg " +PASS CSS Transitions: property <--angle> from [initial] to [20deg] at (1) is [20deg] +FAIL CSS Transitions: property <--angle> from [initial] to [20deg] at (1.5) is [20deg] assert_equals: expected "10deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from [inherit] to [20deg] at (-0.3) is [20deg] assert_equals: expected "33deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from [inherit] to [20deg] at (0) is [20deg] assert_equals: expected "30deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from [inherit] to [20deg] at (0.5) is [20deg] assert_equals: expected "25deg " but got "20deg " +PASS CSS Transitions: property <--angle> from [inherit] to [20deg] at (1) is [20deg] +FAIL CSS Transitions: property <--angle> from [inherit] to [20deg] at (1.5) is [20deg] assert_equals: expected "15deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from [unset] to [20deg] at (-0.3) is [20deg] assert_equals: expected "46deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from [unset] to [20deg] at (0) is [20deg] assert_equals: expected "40deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from [unset] to [20deg] at (0.5) is [20deg] assert_equals: expected "30deg " but got "20deg " +PASS CSS Transitions: property <--angle> from [unset] to [20deg] at (1) is [20deg] +FAIL CSS Transitions: property <--angle> from [unset] to [20deg] at (1.5) is [20deg] assert_equals: expected "10deg " but got "20deg " +FAIL CSS Transitions: property <--angle> from [-10deg] to [10deg] at (-0.3) is [10deg] assert_equals: expected "- 16deg " but got "10deg " +FAIL CSS Transitions: property <--angle> from [-10deg] to [10deg] at (0) is [10deg] assert_equals: expected "- 10deg " but got "10deg " +FAIL CSS Transitions: property <--angle> from [-10deg] to [10deg] at (0.5) is [10deg] assert_equals: expected "0deg " but got "10deg " +PASS CSS Transitions: property <--angle> from [-10deg] to [10deg] at (1) is [10deg] +FAIL CSS Transitions: property <--angle> from [-10deg] to [10deg] at (1.5) is [10deg] assert_equals: expected "20deg " but got "10deg " +FAIL CSS Transitions: property <--angle> from [10rad] to [20rad] at (-0.3) is [20rad] assert_equals: expected "401.07deg " but got "20rad " +FAIL CSS Transitions: property <--angle> from [10rad] to [20rad] at (0) is [20rad] assert_equals: expected "572.96deg " but got "20rad " +FAIL CSS Transitions: property <--angle> from [10rad] to [20rad] at (0.5) is [20rad] assert_equals: expected "859.44deg " but got "20rad " +FAIL CSS Transitions: property <--angle> from [10rad] to [20rad] at (1) is [20rad] assert_equals: expected "1145.92deg " but got "20rad " +FAIL CSS Transitions: property <--angle> from [10rad] to [20rad] at (1.5) is [20rad] assert_equals: expected "1432.39deg " but got "20rad " +FAIL CSS Transitions: property <--angle> from [200grad] to [90deg] at (-0.3) is [90deg] assert_equals: expected "207deg " but got "90deg " +FAIL CSS Transitions: property <--angle> from [200grad] to [90deg] at (0) is [90deg] assert_equals: expected "180deg " but got "90deg " +FAIL CSS Transitions: property <--angle> from [200grad] to [90deg] at (0.5) is [90deg] assert_equals: expected "135deg " but got "90deg " +PASS CSS Transitions: property <--angle> from [200grad] to [90deg] at (1) is [90deg] +FAIL CSS Transitions: property <--angle> from [200grad] to [90deg] at (1.5) is [90deg] assert_equals: expected "45deg " but got "90deg " +PASS CSS Animations: property <--angle> from neutral to [20deg] at (-0.3) is [7deg] +PASS CSS Animations: property <--angle> from neutral to [20deg] at (0) is [10deg] +PASS CSS Animations: property <--angle> from neutral to [20deg] at (0.5) is [15deg] +PASS CSS Animations: property <--angle> from neutral to [20deg] at (1) is [20deg] +PASS CSS Animations: property <--angle> from neutral to [20deg] at (1.5) is [25deg] +PASS CSS Animations: property <--angle> from [initial] to [20deg] at (-0.3) is [46deg] +PASS CSS Animations: property <--angle> from [initial] to [20deg] at (0) is [40deg] +PASS CSS Animations: property <--angle> from [initial] to [20deg] at (0.5) is [30deg] +PASS CSS Animations: property <--angle> from [initial] to [20deg] at (1) is [20deg] +PASS CSS Animations: property <--angle> from [initial] to [20deg] at (1.5) is [10deg] +PASS CSS Animations: property <--angle> from [inherit] to [20deg] at (-0.3) is [33deg] +PASS CSS Animations: property <--angle> from [inherit] to [20deg] at (0) is [30deg] +PASS CSS Animations: property <--angle> from [inherit] to [20deg] at (0.5) is [25deg] +PASS CSS Animations: property <--angle> from [inherit] to [20deg] at (1) is [20deg] +PASS CSS Animations: property <--angle> from [inherit] to [20deg] at (1.5) is [15deg] +PASS CSS Animations: property <--angle> from [unset] to [20deg] at (-0.3) is [46deg] +PASS CSS Animations: property <--angle> from [unset] to [20deg] at (0) is [40deg] +PASS CSS Animations: property <--angle> from [unset] to [20deg] at (0.5) is [30deg] +PASS CSS Animations: property <--angle> from [unset] to [20deg] at (1) is [20deg] +PASS CSS Animations: property <--angle> from [unset] to [20deg] at (1.5) is [10deg] +PASS CSS Animations: property <--angle> from [-10deg] to [10deg] at (-0.3) is [-16deg] +PASS CSS Animations: property <--angle> from [-10deg] to [10deg] at (0) is [-10deg] +PASS CSS Animations: property <--angle> from [-10deg] to [10deg] at (0.5) is [0deg] +PASS CSS Animations: property <--angle> from [-10deg] to [10deg] at (1) is [10deg] +PASS CSS Animations: property <--angle> from [-10deg] to [10deg] at (1.5) is [20deg] +PASS CSS Animations: property <--angle> from [10rad] to [20rad] at (-0.3) is [401.07deg] +PASS CSS Animations: property <--angle> from [10rad] to [20rad] at (0) is [572.958deg] +PASS CSS Animations: property <--angle> from [10rad] to [20rad] at (0.5) is [859.437deg] +PASS CSS Animations: property <--angle> from [10rad] to [20rad] at (1) is [1145.92deg] +PASS CSS Animations: property <--angle> from [10rad] to [20rad] at (1.5) is [1432.39deg] +PASS CSS Animations: property <--angle> from [200grad] to [90deg] at (-0.3) is [207deg] +PASS CSS Animations: property <--angle> from [200grad] to [90deg] at (0) is [180deg] +PASS CSS Animations: property <--angle> from [200grad] to [90deg] at (0.5) is [135deg] +PASS CSS Animations: property <--angle> from [200grad] to [90deg] at (1) is [90deg] +PASS CSS Animations: property <--angle> from [200grad] to [90deg] at (1.5) is [45deg] +PASS Web Animations: property <--angle> from neutral to [20deg] at (-0.3) is [7deg] +PASS Web Animations: property <--angle> from neutral to [20deg] at (0) is [10deg] +PASS Web Animations: property <--angle> from neutral to [20deg] at (0.5) is [15deg] +PASS Web Animations: property <--angle> from neutral to [20deg] at (1) is [20deg] +PASS Web Animations: property <--angle> from neutral to [20deg] at (1.5) is [25deg] +PASS Web Animations: property <--angle> from [initial] to [20deg] at (-0.3) is [46deg] +PASS Web Animations: property <--angle> from [initial] to [20deg] at (0) is [40deg] +PASS Web Animations: property <--angle> from [initial] to [20deg] at (0.5) is [30deg] +PASS Web Animations: property <--angle> from [initial] to [20deg] at (1) is [20deg] +PASS Web Animations: property <--angle> from [initial] to [20deg] at (1.5) is [10deg] +PASS Web Animations: property <--angle> from [inherit] to [20deg] at (-0.3) is [33deg] +PASS Web Animations: property <--angle> from [inherit] to [20deg] at (0) is [30deg] +PASS Web Animations: property <--angle> from [inherit] to [20deg] at (0.5) is [25deg] +PASS Web Animations: property <--angle> from [inherit] to [20deg] at (1) is [20deg] +PASS Web Animations: property <--angle> from [inherit] to [20deg] at (1.5) is [15deg] +PASS Web Animations: property <--angle> from [unset] to [20deg] at (-0.3) is [46deg] +PASS Web Animations: property <--angle> from [unset] to [20deg] at (0) is [40deg] +PASS Web Animations: property <--angle> from [unset] to [20deg] at (0.5) is [30deg] +PASS Web Animations: property <--angle> from [unset] to [20deg] at (1) is [20deg] +PASS Web Animations: property <--angle> from [unset] to [20deg] at (1.5) is [10deg] +PASS Web Animations: property <--angle> from [-10deg] to [10deg] at (-0.3) is [-16deg] +PASS Web Animations: property <--angle> from [-10deg] to [10deg] at (0) is [-10deg] +PASS Web Animations: property <--angle> from [-10deg] to [10deg] at (0.5) is [0deg] +PASS Web Animations: property <--angle> from [-10deg] to [10deg] at (1) is [10deg] +PASS Web Animations: property <--angle> from [-10deg] to [10deg] at (1.5) is [20deg] +PASS Web Animations: property <--angle> from [10rad] to [20rad] at (-0.3) is [401.07deg] +PASS Web Animations: property <--angle> from [10rad] to [20rad] at (0) is [572.958deg] +PASS Web Animations: property <--angle> from [10rad] to [20rad] at (0.5) is [859.437deg] +PASS Web Animations: property <--angle> from [10rad] to [20rad] at (1) is [1145.92deg] +PASS Web Animations: property <--angle> from [10rad] to [20rad] at (1.5) is [1432.39deg] +PASS Web Animations: property <--angle> from [200grad] to [90deg] at (-0.3) is [207deg] +PASS Web Animations: property <--angle> from [200grad] to [90deg] at (0) is [180deg] +PASS Web Animations: property <--angle> from [200grad] to [90deg] at (0.5) is [135deg] +PASS Web Animations: property <--angle> from [200grad] to [90deg] at (1) is [90deg] +PASS Web Animations: property <--angle> from [200grad] to [90deg] at (1.5) is [45deg] +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/angle-type-interpolation.html b/third_party/WebKit/LayoutTests/animations/custom-properties/angle-type-interpolation.html new file mode 100644 index 0000000..7085a599 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/angle-type-interpolation.html
@@ -0,0 +1,104 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<style> +.parent { + --angle: 30deg; +} +.target { + --angle: 10deg; +} +</style> +<body> +<script src="../interpolation/resources/interpolation-test.js"></script> +<script> +CSS.registerProperty({ + name: '--angle', + syntax: '<angle>', + initialValue: '40deg', +}); + +assertInterpolation({ + property: '--angle', + from: neutralKeyframe, + to: '20deg', +}, [ + {at: -0.3, is: '7deg'}, + {at: 0, is: '10deg'}, + {at: 0.5, is: '15deg'}, + {at: 1, is: '20deg'}, + {at: 1.5, is: '25deg'}, +]); + +assertInterpolation({ + property: '--angle', + from: 'initial', + to: '20deg', +}, [ + {at: -0.3, is: '46deg'}, + {at: 0, is: '40deg'}, + {at: 0.5, is: '30deg'}, + {at: 1, is: '20deg'}, + {at: 1.5, is: '10deg'}, +]); + +assertInterpolation({ + property: '--angle', + from: 'inherit', + to: '20deg', +}, [ + {at: -0.3, is: '33deg'}, + {at: 0, is: '30deg'}, + {at: 0.5, is: '25deg'}, + {at: 1, is: '20deg'}, + {at: 1.5, is: '15deg'}, +]); + +assertInterpolation({ + property: '--angle', + from: 'unset', + to: '20deg', +}, [ + {at: -0.3, is: '46deg'}, + {at: 0, is: '40deg'}, + {at: 0.5, is: '30deg'}, + {at: 1, is: '20deg'}, + {at: 1.5, is: '10deg'}, +]); + +assertInterpolation({ + property: '--angle', + from: '-10deg', + to: '10deg', +}, [ + {at: -0.3, is: '-16deg'}, + {at: 0, is: '-10deg'}, + {at: 0.5, is: '0deg'}, + {at: 1, is: '10deg'}, + {at: 1.5, is: '20deg'}, +]); + +assertInterpolation({ + property: '--angle', + from: '10rad', + to: '20rad', +}, [ + {at: -0.3, is: '401.07deg'}, + {at: 0, is: '572.958deg'}, + {at: 0.5, is: '859.437deg'}, + {at: 1, is: '1145.92deg'}, + {at: 1.5, is: '1432.39deg'}, +]); + +assertInterpolation({ + property: '--angle', + from: '200grad', + to: '90deg', +}, [ + {at: -0.3, is: '207deg'}, + {at: 0, is: '180deg'}, + {at: 0.5, is: '135deg'}, + {at: 1, is: '90deg'}, + {at: 1.5, is: '45deg'}, +]); +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-interpolation-expected.txt new file mode 100644 index 0000000..555c0a1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-interpolation-expected.txt
@@ -0,0 +1,124 @@ +This is a testharness.js-based test. +PASS This test uses interpolation-test.js. +FAIL CSS Transitions: property <--length-percentage> from neutral to [20px] at (-0.3) is [20px] assert_equals: expected "7px " but got "20px " +FAIL CSS Transitions: property <--length-percentage> from neutral to [20px] at (0) is [20px] assert_equals: expected "10px " but got "20px " +FAIL CSS Transitions: property <--length-percentage> from neutral to [20px] at (0.5) is [20px] assert_equals: expected "15px " but got "20px " +PASS CSS Transitions: property <--length-percentage> from neutral to [20px] at (1) is [20px] +FAIL CSS Transitions: property <--length-percentage> from neutral to [20px] at (1.5) is [20px] assert_equals: expected "25px " but got "20px " +FAIL CSS Transitions: property <--length-percentage> from [initial] to [40%] at (-0.3) is [40%] assert_equals: expected "calc ( 52px + 92 % ) " but got "40 % " +FAIL CSS Transitions: property <--length-percentage> from [initial] to [40%] at (0) is [40%] assert_equals: expected "calc ( 40px + 80 % ) " but got "40 % " +FAIL CSS Transitions: property <--length-percentage> from [initial] to [40%] at (0.5) is [40%] assert_equals: expected "calc ( 20px + 60 % ) " but got "40 % " +PASS CSS Transitions: property <--length-percentage> from [initial] to [40%] at (1) is [40%] +FAIL CSS Transitions: property <--length-percentage> from [initial] to [40%] at (1.5) is [40%] assert_equals: expected "calc ( - 20px + 20 % ) " but got "40 % " +FAIL CSS Transitions: property <--length-percentage> from [inherit] to [20px] at (-0.3) is [20px] assert_equals: expected "calc ( - 6px + 52 % ) " but got "20px " +FAIL CSS Transitions: property <--length-percentage> from [inherit] to [20px] at (0) is [20px] assert_equals: expected "40 % " but got "20px " +FAIL CSS Transitions: property <--length-percentage> from [inherit] to [20px] at (0.5) is [20px] assert_equals: expected "calc ( 10px + 20 % ) " but got "20px " +PASS CSS Transitions: property <--length-percentage> from [inherit] to [20px] at (1) is [20px] +FAIL CSS Transitions: property <--length-percentage> from [inherit] to [20px] at (1.5) is [20px] assert_equals: expected "calc ( 30px + - 20 % ) " but got "20px " +FAIL CSS Transitions: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (-0.3) is [calc(20px + 40%)] assert_equals: expected "calc ( 46px + 92 % ) " but got "calc ( 20px + 40 % ) " +FAIL CSS Transitions: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (0) is [calc(20px + 40%)] assert_equals: expected "calc ( 40px + 80 % ) " but got "calc ( 20px + 40 % ) " +FAIL CSS Transitions: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (0.5) is [calc(20px + 40%)] assert_equals: expected "calc ( 30px + 60 % ) " but got "calc ( 20px + 40 % ) " +PASS CSS Transitions: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (1) is [calc(20px + 40%)] +FAIL CSS Transitions: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (1.5) is [calc(20px + 40%)] assert_equals: expected "calc ( 10px + 20 % ) " but got "calc ( 20px + 40 % ) " +FAIL CSS Transitions: property <--length-percentage> from [-10px] to [10px] at (-0.3) is [10px] assert_equals: expected "- 16px " but got "10px " +FAIL CSS Transitions: property <--length-percentage> from [-10px] to [10px] at (0) is [10px] assert_equals: expected "- 10px " but got "10px " +FAIL CSS Transitions: property <--length-percentage> from [-10px] to [10px] at (0.5) is [10px] assert_equals: expected "0px " but got "10px " +PASS CSS Transitions: property <--length-percentage> from [-10px] to [10px] at (1) is [10px] +FAIL CSS Transitions: property <--length-percentage> from [-10px] to [10px] at (1.5) is [10px] assert_equals: expected "20px " but got "10px " +FAIL CSS Transitions: property <--length-percentage> from [10em] to [20em] at (-0.3) is [400px] assert_equals: expected "140px " but got "400px " +FAIL CSS Transitions: property <--length-percentage> from [10em] to [20em] at (0) is [400px] assert_equals: expected "200px " but got "400px " +FAIL CSS Transitions: property <--length-percentage> from [10em] to [20em] at (0.5) is [400px] assert_equals: expected "300px " but got "400px " +PASS CSS Transitions: property <--length-percentage> from [10em] to [20em] at (1) is [400px] +FAIL CSS Transitions: property <--length-percentage> from [10em] to [20em] at (1.5) is [400px] assert_equals: expected "500px " but got "400px " +FAIL CSS Transitions: property <--length-percentage> from [10em] to [100px] at (-0.3) is [100px] assert_equals: expected "230px " but got "100px " +FAIL CSS Transitions: property <--length-percentage> from [10em] to [100px] at (0) is [100px] assert_equals: expected "200px " but got "100px " +FAIL CSS Transitions: property <--length-percentage> from [10em] to [100px] at (0.5) is [100px] assert_equals: expected "150px " but got "100px " +PASS CSS Transitions: property <--length-percentage> from [10em] to [100px] at (1) is [100px] +FAIL CSS Transitions: property <--length-percentage> from [10em] to [100px] at (1.5) is [100px] assert_equals: expected "50px " but got "100px " +FAIL CSS Transitions: property <--length-percentage> from [10em] to [100%] at (-0.3) is [100%] assert_equals: expected "calc ( 260px + - 30 % ) " but got "100 % " +FAIL CSS Transitions: property <--length-percentage> from [10em] to [100%] at (0) is [100%] assert_equals: expected "200px " but got "100 % " +FAIL CSS Transitions: property <--length-percentage> from [10em] to [100%] at (0.5) is [100%] assert_equals: expected "calc ( 100px + 50 % ) " but got "100 % " +PASS CSS Transitions: property <--length-percentage> from [10em] to [100%] at (1) is [100%] +FAIL CSS Transitions: property <--length-percentage> from [10em] to [100%] at (1.5) is [100%] assert_equals: expected "calc ( - 100px + 150 % ) " but got "100 % " +PASS CSS Animations: property <--length-percentage> from neutral to [20px] at (-0.3) is [7px] +PASS CSS Animations: property <--length-percentage> from neutral to [20px] at (0) is [10px] +PASS CSS Animations: property <--length-percentage> from neutral to [20px] at (0.5) is [15px] +PASS CSS Animations: property <--length-percentage> from neutral to [20px] at (1) is [20px] +PASS CSS Animations: property <--length-percentage> from neutral to [20px] at (1.5) is [25px] +PASS CSS Animations: property <--length-percentage> from [initial] to [40%] at (-0.3) is [calc(52px + 92%)] +PASS CSS Animations: property <--length-percentage> from [initial] to [40%] at (0) is [calc(40px + 80%)] +PASS CSS Animations: property <--length-percentage> from [initial] to [40%] at (0.5) is [calc(20px + 60%)] +PASS CSS Animations: property <--length-percentage> from [initial] to [40%] at (1) is [40%] +PASS CSS Animations: property <--length-percentage> from [initial] to [40%] at (1.5) is [calc(-20px + 20%)] +PASS CSS Animations: property <--length-percentage> from [inherit] to [20px] at (-0.3) is [calc(-6px + 52%)] +PASS CSS Animations: property <--length-percentage> from [inherit] to [20px] at (0) is [40%] +PASS CSS Animations: property <--length-percentage> from [inherit] to [20px] at (0.5) is [calc(10px + 20%)] +PASS CSS Animations: property <--length-percentage> from [inherit] to [20px] at (1) is [20px] +PASS CSS Animations: property <--length-percentage> from [inherit] to [20px] at (1.5) is [calc(30px + -20%)] +PASS CSS Animations: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (-0.3) is [calc(46px + 92%)] +PASS CSS Animations: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (0) is [calc(40px + 80%)] +PASS CSS Animations: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (0.5) is [calc(30px + 60%)] +PASS CSS Animations: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (1) is [calc(20px + 40%)] +PASS CSS Animations: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (1.5) is [calc(10px + 20%)] +PASS CSS Animations: property <--length-percentage> from [-10px] to [10px] at (-0.3) is [-16px] +PASS CSS Animations: property <--length-percentage> from [-10px] to [10px] at (0) is [-10px] +PASS CSS Animations: property <--length-percentage> from [-10px] to [10px] at (0.5) is [0px] +PASS CSS Animations: property <--length-percentage> from [-10px] to [10px] at (1) is [10px] +PASS CSS Animations: property <--length-percentage> from [-10px] to [10px] at (1.5) is [20px] +PASS CSS Animations: property <--length-percentage> from [10em] to [20em] at (-0.3) is [140px] +PASS CSS Animations: property <--length-percentage> from [10em] to [20em] at (0) is [200px] +PASS CSS Animations: property <--length-percentage> from [10em] to [20em] at (0.5) is [300px] +PASS CSS Animations: property <--length-percentage> from [10em] to [20em] at (1) is [400px] +PASS CSS Animations: property <--length-percentage> from [10em] to [20em] at (1.5) is [500px] +PASS CSS Animations: property <--length-percentage> from [10em] to [100px] at (-0.3) is [230px] +PASS CSS Animations: property <--length-percentage> from [10em] to [100px] at (0) is [200px] +PASS CSS Animations: property <--length-percentage> from [10em] to [100px] at (0.5) is [150px] +PASS CSS Animations: property <--length-percentage> from [10em] to [100px] at (1) is [100px] +PASS CSS Animations: property <--length-percentage> from [10em] to [100px] at (1.5) is [50px] +PASS CSS Animations: property <--length-percentage> from [10em] to [100%] at (-0.3) is [calc(260px + -30%)] +PASS CSS Animations: property <--length-percentage> from [10em] to [100%] at (0) is [200px] +PASS CSS Animations: property <--length-percentage> from [10em] to [100%] at (0.5) is [calc(100px + 50%)] +PASS CSS Animations: property <--length-percentage> from [10em] to [100%] at (1) is [100%] +PASS CSS Animations: property <--length-percentage> from [10em] to [100%] at (1.5) is [calc(-100px + 150%)] +PASS Web Animations: property <--length-percentage> from neutral to [20px] at (-0.3) is [7px] +PASS Web Animations: property <--length-percentage> from neutral to [20px] at (0) is [10px] +PASS Web Animations: property <--length-percentage> from neutral to [20px] at (0.5) is [15px] +PASS Web Animations: property <--length-percentage> from neutral to [20px] at (1) is [20px] +PASS Web Animations: property <--length-percentage> from neutral to [20px] at (1.5) is [25px] +PASS Web Animations: property <--length-percentage> from [initial] to [40%] at (-0.3) is [calc(52px + 92%)] +PASS Web Animations: property <--length-percentage> from [initial] to [40%] at (0) is [calc(40px + 80%)] +PASS Web Animations: property <--length-percentage> from [initial] to [40%] at (0.5) is [calc(20px + 60%)] +PASS Web Animations: property <--length-percentage> from [initial] to [40%] at (1) is [40%] +PASS Web Animations: property <--length-percentage> from [initial] to [40%] at (1.5) is [calc(-20px + 20%)] +PASS Web Animations: property <--length-percentage> from [inherit] to [20px] at (-0.3) is [calc(-6px + 52%)] +PASS Web Animations: property <--length-percentage> from [inherit] to [20px] at (0) is [40%] +PASS Web Animations: property <--length-percentage> from [inherit] to [20px] at (0.5) is [calc(10px + 20%)] +PASS Web Animations: property <--length-percentage> from [inherit] to [20px] at (1) is [20px] +PASS Web Animations: property <--length-percentage> from [inherit] to [20px] at (1.5) is [calc(30px + -20%)] +PASS Web Animations: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (-0.3) is [calc(46px + 92%)] +PASS Web Animations: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (0) is [calc(40px + 80%)] +PASS Web Animations: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (0.5) is [calc(30px + 60%)] +PASS Web Animations: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (1) is [calc(20px + 40%)] +PASS Web Animations: property <--length-percentage> from [unset] to [calc(20px + 40%)] at (1.5) is [calc(10px + 20%)] +PASS Web Animations: property <--length-percentage> from [-10px] to [10px] at (-0.3) is [-16px] +PASS Web Animations: property <--length-percentage> from [-10px] to [10px] at (0) is [-10px] +PASS Web Animations: property <--length-percentage> from [-10px] to [10px] at (0.5) is [0px] +PASS Web Animations: property <--length-percentage> from [-10px] to [10px] at (1) is [10px] +PASS Web Animations: property <--length-percentage> from [-10px] to [10px] at (1.5) is [20px] +PASS Web Animations: property <--length-percentage> from [10em] to [20em] at (-0.3) is [140px] +PASS Web Animations: property <--length-percentage> from [10em] to [20em] at (0) is [200px] +PASS Web Animations: property <--length-percentage> from [10em] to [20em] at (0.5) is [300px] +PASS Web Animations: property <--length-percentage> from [10em] to [20em] at (1) is [400px] +PASS Web Animations: property <--length-percentage> from [10em] to [20em] at (1.5) is [500px] +PASS Web Animations: property <--length-percentage> from [10em] to [100px] at (-0.3) is [230px] +PASS Web Animations: property <--length-percentage> from [10em] to [100px] at (0) is [200px] +PASS Web Animations: property <--length-percentage> from [10em] to [100px] at (0.5) is [150px] +PASS Web Animations: property <--length-percentage> from [10em] to [100px] at (1) is [100px] +PASS Web Animations: property <--length-percentage> from [10em] to [100px] at (1.5) is [50px] +PASS Web Animations: property <--length-percentage> from [10em] to [100%] at (-0.3) is [calc(260px + -30%)] +PASS Web Animations: property <--length-percentage> from [10em] to [100%] at (0) is [200px] +PASS Web Animations: property <--length-percentage> from [10em] to [100%] at (0.5) is [calc(100px + 50%)] +PASS Web Animations: property <--length-percentage> from [10em] to [100%] at (1) is [100%] +PASS Web Animations: property <--length-percentage> from [10em] to [100%] at (1.5) is [calc(-100px + 150%)] +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-interpolation.html b/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-interpolation.html new file mode 100644 index 0000000..1786d7b --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-interpolation.html
@@ -0,0 +1,119 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<style> +.parent { + --length-percentage: 40%; +} +.target { + --length-percentage: 10px; + + /* Testing ems. */ + font-size: 20px; +} +</style> +<body> +<script src="../interpolation/resources/interpolation-test.js"></script> +<script> +CSS.registerProperty({ + name: '--length-percentage', + syntax: '<length-percentage>', + initialValue: 'calc(40px + 80%)', +}); + +assertInterpolation({ + property: '--length-percentage', + from: neutralKeyframe, + to: '20px', +}, [ + {at: -0.3, is: '7px'}, + {at: 0, is: '10px'}, + {at: 0.5, is: '15px'}, + {at: 1, is: '20px'}, + {at: 1.5, is: '25px'}, +]); + +assertInterpolation({ + property: '--length-percentage', + from: 'initial', + to: '40%', +}, [ + {at: -0.3, is: 'calc(52px + 92%)'}, + {at: 0, is: 'calc(40px + 80%)'}, + {at: 0.5, is: 'calc(20px + 60%)'}, + {at: 1, is: '40%'}, + {at: 1.5, is: 'calc(-20px + 20%)'}, +]); + +assertInterpolation({ + property: '--length-percentage', + from: 'inherit', + to: '20px', +}, [ + {at: -0.3, is: 'calc(-6px + 52%)'}, + {at: 0, is: '40%'}, + {at: 0.5, is: 'calc(10px + 20%)'}, + {at: 1, is: '20px'}, + {at: 1.5, is: 'calc(30px + -20%)'}, +]); + +assertInterpolation({ + property: '--length-percentage', + from: 'unset', + to: 'calc(20px + 40%)', +}, [ + {at: -0.3, is: 'calc(46px + 92%)'}, + {at: 0, is: 'calc(40px + 80%)'}, + {at: 0.5, is: 'calc(30px + 60%)'}, + {at: 1, is: 'calc(20px + 40%)'}, + {at: 1.5, is: 'calc(10px + 20%)'}, +]); + +assertInterpolation({ + property: '--length-percentage', + from: '-10px', + to: '10px', +}, [ + {at: -0.3, is: '-16px'}, + {at: 0, is: '-10px'}, + {at: 0.5, is: '0px'}, + {at: 1, is: '10px'}, + {at: 1.5, is: '20px'}, +]); + +assertInterpolation({ + property: '--length-percentage', + from: '10em', + to: '20em', +}, [ + {at: -0.3, is: '140px'}, + {at: 0, is: '200px'}, + {at: 0.5, is: '300px'}, + {at: 1, is: '400px'}, + {at: 1.5, is: '500px'}, +]); + +assertInterpolation({ + property: '--length-percentage', + from: '10em', + to: '100px', +}, [ + {at: -0.3, is: '230px'}, + {at: 0, is: '200px'}, + {at: 0.5, is: '150px'}, + {at: 1, is: '100px'}, + {at: 1.5, is: '50px'}, +]); + +assertInterpolation({ + property: '--length-percentage', + from: '10em', + to: '100%', +}, [ + {at: -0.3, is: 'calc(260px + -30%)'}, + {at: 0, is: '200px'}, + {at: 0.5, is: 'calc(100px + 50%)'}, + {at: 1, is: '100%'}, + {at: 1.5, is: 'calc(-100px + 150%)'}, +]); +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-mismatch-no-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-mismatch-no-interpolation-expected.txt new file mode 100644 index 0000000..972234a2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-mismatch-no-interpolation-expected.txt
@@ -0,0 +1,7 @@ +CONSOLE WARNING: line 24: Invalid keyframe value for property --length: 10% +CONSOLE WARNING: line 35: Invalid keyframe value for property --percentage: 10px +This is a testharness.js-based test. +PASS <length> properties don't accept percentages in animation keyframes +PASS <percentage> properties don't accept lengths in animation keyframes +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-mismatch-no-interpolation.html b/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-mismatch-no-interpolation.html new file mode 100644 index 0000000..5bdf67d --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-mismatch-no-interpolation.html
@@ -0,0 +1,45 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<script src="../../resources/testharness.js"></script> +<script src="../../resources/testharnessreport.js"></script> +<div id="target"></div> +<script> +// The console warnings about "Invalid keyframe value" are expected for this test. + +setup(() => { + CSS.registerProperty({ + name: '--length', + syntax: '<length>', + initialValue: '40px', + }); + + CSS.registerProperty({ + name: '--percentage', + syntax: '<percentage>', + initialValue: '40%', + }); +}); + +test(() => { + var animation = target.animate({'--length': ['10%', '100px']}, 1); + animation.currentTime = 0; + assert_equals(getComputedStyle(target).getPropertyValue('--length'), '40px', + 'percentage fails to parse and is treated as neutral value'); + animation.currentTime = 0.5; + assert_equals(getComputedStyle(target).getPropertyValue('--length'), '70px', + '--length is being animated'); + animation.cancel(); +}, "<length> properties don't accept percentages in animation keyframes"); + +test(() => { + var animation = target.animate({'--percentage': ['10px', '100%']}, 1); + animation.currentTime = 0; + assert_equals(getComputedStyle(target).getPropertyValue('--percentage'), '40%', + 'percentage fails to parse and is treated as neutral value'); + animation.currentTime = 0.5; + assert_equals(getComputedStyle(target).getPropertyValue('--percentage'), '70%', + '--percentage is being animated'); + animation.cancel(); +}, "<percentage> properties don't accept lengths in animation keyframes"); +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/number-type-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/custom-properties/number-type-interpolation-expected.txt new file mode 100644 index 0000000..211c1c0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/number-type-interpolation-expected.txt
@@ -0,0 +1,79 @@ +This is a testharness.js-based test. +PASS This test uses interpolation-test.js. +FAIL CSS Transitions: property <--number> from neutral to [20] at (-0.3) is [20] assert_equals: expected "7 " but got "20 " +FAIL CSS Transitions: property <--number> from neutral to [20] at (0) is [20] assert_equals: expected "10 " but got "20 " +FAIL CSS Transitions: property <--number> from neutral to [20] at (0.5) is [20] assert_equals: expected "15 " but got "20 " +PASS CSS Transitions: property <--number> from neutral to [20] at (1) is [20] +FAIL CSS Transitions: property <--number> from neutral to [20] at (1.5) is [20] assert_equals: expected "25 " but got "20 " +FAIL CSS Transitions: property <--number> from [initial] to [20] at (-0.3) is [20] assert_equals: expected "46 " but got "20 " +FAIL CSS Transitions: property <--number> from [initial] to [20] at (0) is [20] assert_equals: expected "40 " but got "20 " +FAIL CSS Transitions: property <--number> from [initial] to [20] at (0.5) is [20] assert_equals: expected "30 " but got "20 " +PASS CSS Transitions: property <--number> from [initial] to [20] at (1) is [20] +FAIL CSS Transitions: property <--number> from [initial] to [20] at (1.5) is [20] assert_equals: expected "10 " but got "20 " +FAIL CSS Transitions: property <--number> from [inherit] to [20] at (-0.3) is [20] assert_equals: expected "33 " but got "20 " +FAIL CSS Transitions: property <--number> from [inherit] to [20] at (0) is [20] assert_equals: expected "30 " but got "20 " +FAIL CSS Transitions: property <--number> from [inherit] to [20] at (0.5) is [20] assert_equals: expected "25 " but got "20 " +PASS CSS Transitions: property <--number> from [inherit] to [20] at (1) is [20] +FAIL CSS Transitions: property <--number> from [inherit] to [20] at (1.5) is [20] assert_equals: expected "15 " but got "20 " +FAIL CSS Transitions: property <--number> from [unset] to [20] at (-0.3) is [20] assert_equals: expected "46 " but got "20 " +FAIL CSS Transitions: property <--number> from [unset] to [20] at (0) is [20] assert_equals: expected "40 " but got "20 " +FAIL CSS Transitions: property <--number> from [unset] to [20] at (0.5) is [20] assert_equals: expected "30 " but got "20 " +PASS CSS Transitions: property <--number> from [unset] to [20] at (1) is [20] +FAIL CSS Transitions: property <--number> from [unset] to [20] at (1.5) is [20] assert_equals: expected "10 " but got "20 " +FAIL CSS Transitions: property <--number> from [-10] to [10] at (-0.3) is [10] assert_equals: expected "- 16 " but got "10 " +FAIL CSS Transitions: property <--number> from [-10] to [10] at (0) is [10] assert_equals: expected "- 10 " but got "10 " +FAIL CSS Transitions: property <--number> from [-10] to [10] at (0.5) is [10] assert_equals: expected "0 " but got "10 " +PASS CSS Transitions: property <--number> from [-10] to [10] at (1) is [10] +FAIL CSS Transitions: property <--number> from [-10] to [10] at (1.5) is [10] assert_equals: expected "20 " but got "10 " +PASS CSS Animations: property <--number> from neutral to [20] at (-0.3) is [7] +PASS CSS Animations: property <--number> from neutral to [20] at (0) is [10] +PASS CSS Animations: property <--number> from neutral to [20] at (0.5) is [15] +PASS CSS Animations: property <--number> from neutral to [20] at (1) is [20] +PASS CSS Animations: property <--number> from neutral to [20] at (1.5) is [25] +PASS CSS Animations: property <--number> from [initial] to [20] at (-0.3) is [46] +PASS CSS Animations: property <--number> from [initial] to [20] at (0) is [40] +PASS CSS Animations: property <--number> from [initial] to [20] at (0.5) is [30] +PASS CSS Animations: property <--number> from [initial] to [20] at (1) is [20] +PASS CSS Animations: property <--number> from [initial] to [20] at (1.5) is [10] +PASS CSS Animations: property <--number> from [inherit] to [20] at (-0.3) is [33] +PASS CSS Animations: property <--number> from [inherit] to [20] at (0) is [30] +PASS CSS Animations: property <--number> from [inherit] to [20] at (0.5) is [25] +PASS CSS Animations: property <--number> from [inherit] to [20] at (1) is [20] +PASS CSS Animations: property <--number> from [inherit] to [20] at (1.5) is [15] +PASS CSS Animations: property <--number> from [unset] to [20] at (-0.3) is [46] +PASS CSS Animations: property <--number> from [unset] to [20] at (0) is [40] +PASS CSS Animations: property <--number> from [unset] to [20] at (0.5) is [30] +PASS CSS Animations: property <--number> from [unset] to [20] at (1) is [20] +PASS CSS Animations: property <--number> from [unset] to [20] at (1.5) is [10] +PASS CSS Animations: property <--number> from [-10] to [10] at (-0.3) is [-16] +PASS CSS Animations: property <--number> from [-10] to [10] at (0) is [-10] +PASS CSS Animations: property <--number> from [-10] to [10] at (0.5) is [0] +PASS CSS Animations: property <--number> from [-10] to [10] at (1) is [10] +PASS CSS Animations: property <--number> from [-10] to [10] at (1.5) is [20] +PASS Web Animations: property <--number> from neutral to [20] at (-0.3) is [7] +PASS Web Animations: property <--number> from neutral to [20] at (0) is [10] +PASS Web Animations: property <--number> from neutral to [20] at (0.5) is [15] +PASS Web Animations: property <--number> from neutral to [20] at (1) is [20] +PASS Web Animations: property <--number> from neutral to [20] at (1.5) is [25] +PASS Web Animations: property <--number> from [initial] to [20] at (-0.3) is [46] +PASS Web Animations: property <--number> from [initial] to [20] at (0) is [40] +PASS Web Animations: property <--number> from [initial] to [20] at (0.5) is [30] +PASS Web Animations: property <--number> from [initial] to [20] at (1) is [20] +PASS Web Animations: property <--number> from [initial] to [20] at (1.5) is [10] +PASS Web Animations: property <--number> from [inherit] to [20] at (-0.3) is [33] +PASS Web Animations: property <--number> from [inherit] to [20] at (0) is [30] +PASS Web Animations: property <--number> from [inherit] to [20] at (0.5) is [25] +PASS Web Animations: property <--number> from [inherit] to [20] at (1) is [20] +PASS Web Animations: property <--number> from [inherit] to [20] at (1.5) is [15] +PASS Web Animations: property <--number> from [unset] to [20] at (-0.3) is [46] +PASS Web Animations: property <--number> from [unset] to [20] at (0) is [40] +PASS Web Animations: property <--number> from [unset] to [20] at (0.5) is [30] +PASS Web Animations: property <--number> from [unset] to [20] at (1) is [20] +PASS Web Animations: property <--number> from [unset] to [20] at (1.5) is [10] +PASS Web Animations: property <--number> from [-10] to [10] at (-0.3) is [-16] +PASS Web Animations: property <--number> from [-10] to [10] at (0) is [-10] +PASS Web Animations: property <--number> from [-10] to [10] at (0.5) is [0] +PASS Web Animations: property <--number> from [-10] to [10] at (1) is [10] +PASS Web Animations: property <--number> from [-10] to [10] at (1.5) is [20] +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/number-type-interpolation.html b/third_party/WebKit/LayoutTests/animations/custom-properties/number-type-interpolation.html new file mode 100644 index 0000000..051ae16 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/number-type-interpolation.html
@@ -0,0 +1,80 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<style> +.parent { + --number: 30; +} +.target { + --number: 10; +} +</style> +<body> +<script src="../interpolation/resources/interpolation-test.js"></script> +<script> +CSS.registerProperty({ + name: '--number', + syntax: '<number>', + initialValue: '40', +}); + +assertInterpolation({ + property: '--number', + from: neutralKeyframe, + to: '20', +}, [ + {at: -0.3, is: '7'}, + {at: 0, is: '10'}, + {at: 0.5, is: '15'}, + {at: 1, is: '20'}, + {at: 1.5, is: '25'}, +]); + +assertInterpolation({ + property: '--number', + from: 'initial', + to: '20', +}, [ + {at: -0.3, is: '46'}, + {at: 0, is: '40'}, + {at: 0.5, is: '30'}, + {at: 1, is: '20'}, + {at: 1.5, is: '10'}, +]); + +assertInterpolation({ + property: '--number', + from: 'inherit', + to: '20', +}, [ + {at: -0.3, is: '33'}, + {at: 0, is: '30'}, + {at: 0.5, is: '25'}, + {at: 1, is: '20'}, + {at: 1.5, is: '15'}, +]); + +assertInterpolation({ + property: '--number', + from: 'unset', + to: '20', +}, [ + {at: -0.3, is: '46'}, + {at: 0, is: '40'}, + {at: 0.5, is: '30'}, + {at: 1, is: '20'}, + {at: 1.5, is: '10'}, +]); + +assertInterpolation({ + property: '--number', + from: '-10', + to: '10', +}, [ + {at: -0.3, is: '-16'}, + {at: 0, is: '-10'}, + {at: 0.5, is: '0'}, + {at: 1, is: '10'}, + {at: 1.5, is: '20'} +]); +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/percentage-type-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/custom-properties/percentage-type-interpolation-expected.txt new file mode 100644 index 0000000..589849f7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/percentage-type-interpolation-expected.txt
@@ -0,0 +1,79 @@ +This is a testharness.js-based test. +PASS This test uses interpolation-test.js. +FAIL CSS Transitions: property <--percentage> from neutral to [20%] at (-0.3) is [20%] assert_equals: expected "7 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from neutral to [20%] at (0) is [20%] assert_equals: expected "10 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from neutral to [20%] at (0.5) is [20%] assert_equals: expected "15 % " but got "20 % " +PASS CSS Transitions: property <--percentage> from neutral to [20%] at (1) is [20%] +FAIL CSS Transitions: property <--percentage> from neutral to [20%] at (1.5) is [20%] assert_equals: expected "25 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from [initial] to [20%] at (-0.3) is [20%] assert_equals: expected "46 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from [initial] to [20%] at (0) is [20%] assert_equals: expected "40 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from [initial] to [20%] at (0.5) is [20%] assert_equals: expected "30 % " but got "20 % " +PASS CSS Transitions: property <--percentage> from [initial] to [20%] at (1) is [20%] +FAIL CSS Transitions: property <--percentage> from [initial] to [20%] at (1.5) is [20%] assert_equals: expected "10 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from [inherit] to [20%] at (-0.3) is [20%] assert_equals: expected "33 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from [inherit] to [20%] at (0) is [20%] assert_equals: expected "30 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from [inherit] to [20%] at (0.5) is [20%] assert_equals: expected "25 % " but got "20 % " +PASS CSS Transitions: property <--percentage> from [inherit] to [20%] at (1) is [20%] +FAIL CSS Transitions: property <--percentage> from [inherit] to [20%] at (1.5) is [20%] assert_equals: expected "15 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from [unset] to [20%] at (-0.3) is [20%] assert_equals: expected "46 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from [unset] to [20%] at (0) is [20%] assert_equals: expected "40 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from [unset] to [20%] at (0.5) is [20%] assert_equals: expected "30 % " but got "20 % " +PASS CSS Transitions: property <--percentage> from [unset] to [20%] at (1) is [20%] +FAIL CSS Transitions: property <--percentage> from [unset] to [20%] at (1.5) is [20%] assert_equals: expected "10 % " but got "20 % " +FAIL CSS Transitions: property <--percentage> from [-10%] to [10%] at (-0.3) is [10%] assert_equals: expected "- 16 % " but got "10 % " +FAIL CSS Transitions: property <--percentage> from [-10%] to [10%] at (0) is [10%] assert_equals: expected "- 10 % " but got "10 % " +FAIL CSS Transitions: property <--percentage> from [-10%] to [10%] at (0.5) is [10%] assert_equals: expected "0 % " but got "10 % " +PASS CSS Transitions: property <--percentage> from [-10%] to [10%] at (1) is [10%] +FAIL CSS Transitions: property <--percentage> from [-10%] to [10%] at (1.5) is [10%] assert_equals: expected "20 % " but got "10 % " +PASS CSS Animations: property <--percentage> from neutral to [20%] at (-0.3) is [7%] +PASS CSS Animations: property <--percentage> from neutral to [20%] at (0) is [10%] +PASS CSS Animations: property <--percentage> from neutral to [20%] at (0.5) is [15%] +PASS CSS Animations: property <--percentage> from neutral to [20%] at (1) is [20%] +PASS CSS Animations: property <--percentage> from neutral to [20%] at (1.5) is [25%] +PASS CSS Animations: property <--percentage> from [initial] to [20%] at (-0.3) is [46%] +PASS CSS Animations: property <--percentage> from [initial] to [20%] at (0) is [40%] +PASS CSS Animations: property <--percentage> from [initial] to [20%] at (0.5) is [30%] +PASS CSS Animations: property <--percentage> from [initial] to [20%] at (1) is [20%] +PASS CSS Animations: property <--percentage> from [initial] to [20%] at (1.5) is [10%] +PASS CSS Animations: property <--percentage> from [inherit] to [20%] at (-0.3) is [33%] +PASS CSS Animations: property <--percentage> from [inherit] to [20%] at (0) is [30%] +PASS CSS Animations: property <--percentage> from [inherit] to [20%] at (0.5) is [25%] +PASS CSS Animations: property <--percentage> from [inherit] to [20%] at (1) is [20%] +PASS CSS Animations: property <--percentage> from [inherit] to [20%] at (1.5) is [15%] +PASS CSS Animations: property <--percentage> from [unset] to [20%] at (-0.3) is [46%] +PASS CSS Animations: property <--percentage> from [unset] to [20%] at (0) is [40%] +PASS CSS Animations: property <--percentage> from [unset] to [20%] at (0.5) is [30%] +PASS CSS Animations: property <--percentage> from [unset] to [20%] at (1) is [20%] +PASS CSS Animations: property <--percentage> from [unset] to [20%] at (1.5) is [10%] +PASS CSS Animations: property <--percentage> from [-10%] to [10%] at (-0.3) is [-16%] +PASS CSS Animations: property <--percentage> from [-10%] to [10%] at (0) is [-10%] +PASS CSS Animations: property <--percentage> from [-10%] to [10%] at (0.5) is [0%] +PASS CSS Animations: property <--percentage> from [-10%] to [10%] at (1) is [10%] +PASS CSS Animations: property <--percentage> from [-10%] to [10%] at (1.5) is [20%] +PASS Web Animations: property <--percentage> from neutral to [20%] at (-0.3) is [7%] +PASS Web Animations: property <--percentage> from neutral to [20%] at (0) is [10%] +PASS Web Animations: property <--percentage> from neutral to [20%] at (0.5) is [15%] +PASS Web Animations: property <--percentage> from neutral to [20%] at (1) is [20%] +PASS Web Animations: property <--percentage> from neutral to [20%] at (1.5) is [25%] +PASS Web Animations: property <--percentage> from [initial] to [20%] at (-0.3) is [46%] +PASS Web Animations: property <--percentage> from [initial] to [20%] at (0) is [40%] +PASS Web Animations: property <--percentage> from [initial] to [20%] at (0.5) is [30%] +PASS Web Animations: property <--percentage> from [initial] to [20%] at (1) is [20%] +PASS Web Animations: property <--percentage> from [initial] to [20%] at (1.5) is [10%] +PASS Web Animations: property <--percentage> from [inherit] to [20%] at (-0.3) is [33%] +PASS Web Animations: property <--percentage> from [inherit] to [20%] at (0) is [30%] +PASS Web Animations: property <--percentage> from [inherit] to [20%] at (0.5) is [25%] +PASS Web Animations: property <--percentage> from [inherit] to [20%] at (1) is [20%] +PASS Web Animations: property <--percentage> from [inherit] to [20%] at (1.5) is [15%] +PASS Web Animations: property <--percentage> from [unset] to [20%] at (-0.3) is [46%] +PASS Web Animations: property <--percentage> from [unset] to [20%] at (0) is [40%] +PASS Web Animations: property <--percentage> from [unset] to [20%] at (0.5) is [30%] +PASS Web Animations: property <--percentage> from [unset] to [20%] at (1) is [20%] +PASS Web Animations: property <--percentage> from [unset] to [20%] at (1.5) is [10%] +PASS Web Animations: property <--percentage> from [-10%] to [10%] at (-0.3) is [-16%] +PASS Web Animations: property <--percentage> from [-10%] to [10%] at (0) is [-10%] +PASS Web Animations: property <--percentage> from [-10%] to [10%] at (0.5) is [0%] +PASS Web Animations: property <--percentage> from [-10%] to [10%] at (1) is [10%] +PASS Web Animations: property <--percentage> from [-10%] to [10%] at (1.5) is [20%] +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/percentage-type-interpolation.html b/third_party/WebKit/LayoutTests/animations/custom-properties/percentage-type-interpolation.html new file mode 100644 index 0000000..9addfd96 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/percentage-type-interpolation.html
@@ -0,0 +1,80 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<style> +.parent { + --percentage: 30%; +} +.target { + --percentage: 10%; +} +</style> +<body> +<script src="../interpolation/resources/interpolation-test.js"></script> +<script> +CSS.registerProperty({ + name: '--percentage', + syntax: '<percentage>', + initialValue: '40%', +}); + +assertInterpolation({ + property: '--percentage', + from: neutralKeyframe, + to: '20%', +}, [ + {at: -0.3, is: '7%'}, + {at: 0, is: '10%'}, + {at: 0.5, is: '15%'}, + {at: 1, is: '20%'}, + {at: 1.5, is: '25%'}, +]); + +assertInterpolation({ + property: '--percentage', + from: 'initial', + to: '20%', +}, [ + {at: -0.3, is: '46%'}, + {at: 0, is: '40%'}, + {at: 0.5, is: '30%'}, + {at: 1, is: '20%'}, + {at: 1.5, is: '10%'}, +]); + +assertInterpolation({ + property: '--percentage', + from: 'inherit', + to: '20%', +}, [ + {at: -0.3, is: '33%'}, + {at: 0, is: '30%'}, + {at: 0.5, is: '25%'}, + {at: 1, is: '20%'}, + {at: 1.5, is: '15%'}, +]); + +assertInterpolation({ + property: '--percentage', + from: 'unset', + to: '20%', +}, [ + {at: -0.3, is: '46%'}, + {at: 0, is: '40%'}, + {at: 0.5, is: '30%'}, + {at: 1, is: '20%'}, + {at: 1.5, is: '10%'}, +]); + +assertInterpolation({ + property: '--percentage', + from: '-10%', + to: '10%', +}, [ + {at: -0.3, is: '-16%'}, + {at: 0, is: '-10%'}, + {at: 0.5, is: '0%'}, + {at: 1, is: '10%'}, + {at: 1.5, is: '20%'}, +]); +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/time-type-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/custom-properties/time-type-interpolation-expected.txt new file mode 100644 index 0000000..2f8b985 --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/time-type-interpolation-expected.txt
@@ -0,0 +1,109 @@ +This is a testharness.js-based test. +PASS This test uses interpolation-test.js. +FAIL CSS Transitions: property <--time> from neutral to [20s] at (-0.3) is [20s] assert_equals: expected "7s " but got "20s " +FAIL CSS Transitions: property <--time> from neutral to [20s] at (0) is [20s] assert_equals: expected "10s " but got "20s " +FAIL CSS Transitions: property <--time> from neutral to [20s] at (0.5) is [20s] assert_equals: expected "15s " but got "20s " +PASS CSS Transitions: property <--time> from neutral to [20s] at (1) is [20s] +FAIL CSS Transitions: property <--time> from neutral to [20s] at (1.5) is [20s] assert_equals: expected "25s " but got "20s " +FAIL CSS Transitions: property <--time> from [initial] to [20s] at (-0.3) is [20s] assert_equals: expected "46s " but got "20s " +FAIL CSS Transitions: property <--time> from [initial] to [20s] at (0) is [20s] assert_equals: expected "40s " but got "20s " +FAIL CSS Transitions: property <--time> from [initial] to [20s] at (0.5) is [20s] assert_equals: expected "30s " but got "20s " +PASS CSS Transitions: property <--time> from [initial] to [20s] at (1) is [20s] +FAIL CSS Transitions: property <--time> from [initial] to [20s] at (1.5) is [20s] assert_equals: expected "10s " but got "20s " +FAIL CSS Transitions: property <--time> from [inherit] to [20s] at (-0.3) is [20s] assert_equals: expected "33s " but got "20s " +FAIL CSS Transitions: property <--time> from [inherit] to [20s] at (0) is [20s] assert_equals: expected "30s " but got "20s " +FAIL CSS Transitions: property <--time> from [inherit] to [20s] at (0.5) is [20s] assert_equals: expected "25s " but got "20s " +PASS CSS Transitions: property <--time> from [inherit] to [20s] at (1) is [20s] +FAIL CSS Transitions: property <--time> from [inherit] to [20s] at (1.5) is [20s] assert_equals: expected "15s " but got "20s " +FAIL CSS Transitions: property <--time> from [unset] to [20s] at (-0.3) is [20s] assert_equals: expected "46s " but got "20s " +FAIL CSS Transitions: property <--time> from [unset] to [20s] at (0) is [20s] assert_equals: expected "40s " but got "20s " +FAIL CSS Transitions: property <--time> from [unset] to [20s] at (0.5) is [20s] assert_equals: expected "30s " but got "20s " +PASS CSS Transitions: property <--time> from [unset] to [20s] at (1) is [20s] +FAIL CSS Transitions: property <--time> from [unset] to [20s] at (1.5) is [20s] assert_equals: expected "10s " but got "20s " +FAIL CSS Transitions: property <--time> from [-10s] to [10s] at (-0.3) is [10s] assert_equals: expected "- 16s " but got "10s " +FAIL CSS Transitions: property <--time> from [-10s] to [10s] at (0) is [10s] assert_equals: expected "- 10s " but got "10s " +FAIL CSS Transitions: property <--time> from [-10s] to [10s] at (0.5) is [10s] assert_equals: expected "0s " but got "10s " +PASS CSS Transitions: property <--time> from [-10s] to [10s] at (1) is [10s] +FAIL CSS Transitions: property <--time> from [-10s] to [10s] at (1.5) is [10s] assert_equals: expected "20s " but got "10s " +FAIL CSS Transitions: property <--time> from [100ms] to [200ms] at (-0.3) is [200ms] assert_equals: expected "0.07s " but got "200ms " +FAIL CSS Transitions: property <--time> from [100ms] to [200ms] at (0) is [200ms] assert_equals: expected "0.1s " but got "200ms " +FAIL CSS Transitions: property <--time> from [100ms] to [200ms] at (0.5) is [200ms] assert_equals: expected "0.15s " but got "200ms " +FAIL CSS Transitions: property <--time> from [100ms] to [200ms] at (1) is [200ms] assert_equals: expected "0.2s " but got "200ms " +FAIL CSS Transitions: property <--time> from [100ms] to [200ms] at (1.5) is [200ms] assert_equals: expected "0.25s " but got "200ms " +FAIL CSS Transitions: property <--time> from [1000ms] to [11s] at (-0.3) is [11s] assert_equals: expected "- 2s " but got "11s " +FAIL CSS Transitions: property <--time> from [1000ms] to [11s] at (0) is [11s] assert_equals: expected "1s " but got "11s " +FAIL CSS Transitions: property <--time> from [1000ms] to [11s] at (0.5) is [11s] assert_equals: expected "6s " but got "11s " +PASS CSS Transitions: property <--time> from [1000ms] to [11s] at (1) is [11s] +FAIL CSS Transitions: property <--time> from [1000ms] to [11s] at (1.5) is [11s] assert_equals: expected "16s " but got "11s " +PASS CSS Animations: property <--time> from neutral to [20s] at (-0.3) is [7s] +PASS CSS Animations: property <--time> from neutral to [20s] at (0) is [10s] +PASS CSS Animations: property <--time> from neutral to [20s] at (0.5) is [15s] +PASS CSS Animations: property <--time> from neutral to [20s] at (1) is [20s] +PASS CSS Animations: property <--time> from neutral to [20s] at (1.5) is [25s] +PASS CSS Animations: property <--time> from [initial] to [20s] at (-0.3) is [46s] +PASS CSS Animations: property <--time> from [initial] to [20s] at (0) is [40s] +PASS CSS Animations: property <--time> from [initial] to [20s] at (0.5) is [30s] +PASS CSS Animations: property <--time> from [initial] to [20s] at (1) is [20s] +PASS CSS Animations: property <--time> from [initial] to [20s] at (1.5) is [10s] +PASS CSS Animations: property <--time> from [inherit] to [20s] at (-0.3) is [33s] +PASS CSS Animations: property <--time> from [inherit] to [20s] at (0) is [30s] +PASS CSS Animations: property <--time> from [inherit] to [20s] at (0.5) is [25s] +PASS CSS Animations: property <--time> from [inherit] to [20s] at (1) is [20s] +PASS CSS Animations: property <--time> from [inherit] to [20s] at (1.5) is [15s] +PASS CSS Animations: property <--time> from [unset] to [20s] at (-0.3) is [46s] +PASS CSS Animations: property <--time> from [unset] to [20s] at (0) is [40s] +PASS CSS Animations: property <--time> from [unset] to [20s] at (0.5) is [30s] +PASS CSS Animations: property <--time> from [unset] to [20s] at (1) is [20s] +PASS CSS Animations: property <--time> from [unset] to [20s] at (1.5) is [10s] +PASS CSS Animations: property <--time> from [-10s] to [10s] at (-0.3) is [-16s] +PASS CSS Animations: property <--time> from [-10s] to [10s] at (0) is [-10s] +PASS CSS Animations: property <--time> from [-10s] to [10s] at (0.5) is [0s] +PASS CSS Animations: property <--time> from [-10s] to [10s] at (1) is [10s] +PASS CSS Animations: property <--time> from [-10s] to [10s] at (1.5) is [20s] +PASS CSS Animations: property <--time> from [100ms] to [200ms] at (-0.3) is [0.07s] +PASS CSS Animations: property <--time> from [100ms] to [200ms] at (0) is [0.1s] +PASS CSS Animations: property <--time> from [100ms] to [200ms] at (0.5) is [0.15s] +PASS CSS Animations: property <--time> from [100ms] to [200ms] at (1) is [0.2s] +PASS CSS Animations: property <--time> from [100ms] to [200ms] at (1.5) is [0.25s] +PASS CSS Animations: property <--time> from [1000ms] to [11s] at (-0.3) is [-2s] +PASS CSS Animations: property <--time> from [1000ms] to [11s] at (0) is [1s] +PASS CSS Animations: property <--time> from [1000ms] to [11s] at (0.5) is [6s] +PASS CSS Animations: property <--time> from [1000ms] to [11s] at (1) is [11s] +PASS CSS Animations: property <--time> from [1000ms] to [11s] at (1.5) is [16s] +PASS Web Animations: property <--time> from neutral to [20s] at (-0.3) is [7s] +PASS Web Animations: property <--time> from neutral to [20s] at (0) is [10s] +PASS Web Animations: property <--time> from neutral to [20s] at (0.5) is [15s] +PASS Web Animations: property <--time> from neutral to [20s] at (1) is [20s] +PASS Web Animations: property <--time> from neutral to [20s] at (1.5) is [25s] +PASS Web Animations: property <--time> from [initial] to [20s] at (-0.3) is [46s] +PASS Web Animations: property <--time> from [initial] to [20s] at (0) is [40s] +PASS Web Animations: property <--time> from [initial] to [20s] at (0.5) is [30s] +PASS Web Animations: property <--time> from [initial] to [20s] at (1) is [20s] +PASS Web Animations: property <--time> from [initial] to [20s] at (1.5) is [10s] +PASS Web Animations: property <--time> from [inherit] to [20s] at (-0.3) is [33s] +PASS Web Animations: property <--time> from [inherit] to [20s] at (0) is [30s] +PASS Web Animations: property <--time> from [inherit] to [20s] at (0.5) is [25s] +PASS Web Animations: property <--time> from [inherit] to [20s] at (1) is [20s] +PASS Web Animations: property <--time> from [inherit] to [20s] at (1.5) is [15s] +PASS Web Animations: property <--time> from [unset] to [20s] at (-0.3) is [46s] +PASS Web Animations: property <--time> from [unset] to [20s] at (0) is [40s] +PASS Web Animations: property <--time> from [unset] to [20s] at (0.5) is [30s] +PASS Web Animations: property <--time> from [unset] to [20s] at (1) is [20s] +PASS Web Animations: property <--time> from [unset] to [20s] at (1.5) is [10s] +PASS Web Animations: property <--time> from [-10s] to [10s] at (-0.3) is [-16s] +PASS Web Animations: property <--time> from [-10s] to [10s] at (0) is [-10s] +PASS Web Animations: property <--time> from [-10s] to [10s] at (0.5) is [0s] +PASS Web Animations: property <--time> from [-10s] to [10s] at (1) is [10s] +PASS Web Animations: property <--time> from [-10s] to [10s] at (1.5) is [20s] +PASS Web Animations: property <--time> from [100ms] to [200ms] at (-0.3) is [0.07s] +PASS Web Animations: property <--time> from [100ms] to [200ms] at (0) is [0.1s] +PASS Web Animations: property <--time> from [100ms] to [200ms] at (0.5) is [0.15s] +PASS Web Animations: property <--time> from [100ms] to [200ms] at (1) is [0.2s] +PASS Web Animations: property <--time> from [100ms] to [200ms] at (1.5) is [0.25s] +PASS Web Animations: property <--time> from [1000ms] to [11s] at (-0.3) is [-2s] +PASS Web Animations: property <--time> from [1000ms] to [11s] at (0) is [1s] +PASS Web Animations: property <--time> from [1000ms] to [11s] at (0.5) is [6s] +PASS Web Animations: property <--time> from [1000ms] to [11s] at (1) is [11s] +PASS Web Animations: property <--time> from [1000ms] to [11s] at (1.5) is [16s] +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/animations/custom-properties/time-type-interpolation.html b/third_party/WebKit/LayoutTests/animations/custom-properties/time-type-interpolation.html new file mode 100644 index 0000000..953848c --- /dev/null +++ b/third_party/WebKit/LayoutTests/animations/custom-properties/time-type-interpolation.html
@@ -0,0 +1,104 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<style> +.parent { + --time: 30s; +} +.target { + --time: 10s; +} +</style> +<body> +<script src="../interpolation/resources/interpolation-test.js"></script> +<script> +CSS.registerProperty({ + name: '--time', + syntax: '<time>', + initialValue: '40s', +}); + +assertInterpolation({ + property: '--time', + from: neutralKeyframe, + to: '20s', +}, [ + {at: -0.3, is: '7s'}, + {at: 0, is: '10s'}, + {at: 0.5, is: '15s'}, + {at: 1, is: '20s'}, + {at: 1.5, is: '25s'}, +]); + +assertInterpolation({ + property: '--time', + from: 'initial', + to: '20s', +}, [ + {at: -0.3, is: '46s'}, + {at: 0, is: '40s'}, + {at: 0.5, is: '30s'}, + {at: 1, is: '20s'}, + {at: 1.5, is: '10s'}, +]); + +assertInterpolation({ + property: '--time', + from: 'inherit', + to: '20s', +}, [ + {at: -0.3, is: '33s'}, + {at: 0, is: '30s'}, + {at: 0.5, is: '25s'}, + {at: 1, is: '20s'}, + {at: 1.5, is: '15s'}, +]); + +assertInterpolation({ + property: '--time', + from: 'unset', + to: '20s', +}, [ + {at: -0.3, is: '46s'}, + {at: 0, is: '40s'}, + {at: 0.5, is: '30s'}, + {at: 1, is: '20s'}, + {at: 1.5, is: '10s'}, +]); + +assertInterpolation({ + property: '--time', + from: '-10s', + to: '10s', +}, [ + {at: -0.3, is: '-16s'}, + {at: 0, is: '-10s'}, + {at: 0.5, is: '0s'}, + {at: 1, is: '10s'}, + {at: 1.5, is: '20s'}, +]); + +assertInterpolation({ + property: '--time', + from: '100ms', + to: '200ms', +}, [ + {at: -0.3, is: '0.07s'}, + {at: 0, is: '0.1s'}, + {at: 0.5, is: '0.15s'}, + {at: 1, is: '0.2s'}, + {at: 1.5, is: '0.25s'}, +]); + +assertInterpolation({ + property: '--time', + from: '1000ms', + to: '11s', +}, [ + {at: -0.3, is: '-2s'}, + {at: 0, is: '1s'}, + {at: 0.5, is: '6s'}, + {at: 1, is: '11s'}, + {at: 1.5, is: '16s'}, +]); +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation-expected.txt b/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation-expected.txt index 76cb5e6..e3dc0aa4 100644 --- a/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation-expected.txt +++ b/third_party/WebKit/LayoutTests/animations/interpolation/border-image-width-interpolation-expected.txt
@@ -189,12 +189,12 @@ FAIL CSS Animations: property <border-image-width> from [10px] to [20%] at (0.6) is [calc(4px + 12%)] assert_equals: expected "16px " but got "calc ( 4px + 12 % ) " PASS CSS Animations: property <border-image-width> from [10px] to [20%] at (1) is [20%] FAIL CSS Animations: property <border-image-width> from [10px] to [20%] at (1.5) is [calc(-5px + 30%)] assert_equals: expected "25px " but got "calc ( - 5px + 30 % ) " -FAIL CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) is [10px auto auto 20] assert_equals: expected "0px auto auto 0 " but got "10px auto auto 20 " +PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) is [0px auto auto 0] PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0) is [10px auto auto 20] -FAIL CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) is [10px auto auto 20] assert_equals: expected "40px auto auto 50 " but got "10px auto auto 20 " -FAIL CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.6) is [110px auto auto 120] assert_equals: expected "70px auto auto 80 " but got "110px auto auto 120 " +PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) is [40px auto auto 50] +PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.6) is [70px auto auto 80] PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1) is [110px auto auto 120] -FAIL CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1.5) is [110px auto auto 120] assert_equals: expected "160px auto auto 170 " but got "110px auto auto 120 " +PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1.5) is [160px auto auto 170] PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (-0.3) is [10px auto auto 20] PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (0) is [10px auto auto 20] PASS CSS Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (0.3) is [10px auto auto 20] @@ -304,12 +304,12 @@ FAIL Web Animations: property <border-image-width> from [10px] to [20%] at (0.6) is [calc(4px + 12%)] assert_equals: expected "16px " but got "calc ( 4px + 12 % ) " PASS Web Animations: property <border-image-width> from [10px] to [20%] at (1) is [20%] FAIL Web Animations: property <border-image-width> from [10px] to [20%] at (1.5) is [calc(-5px + 30%)] assert_equals: expected "25px " but got "calc ( - 5px + 30 % ) " -FAIL Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) is [10px auto auto 20] assert_equals: expected "0px auto auto 0 " but got "10px auto auto 20 " +PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) is [0px auto auto 0] PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0) is [10px auto auto 20] -FAIL Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) is [10px auto auto 20] assert_equals: expected "40px auto auto 50 " but got "10px auto auto 20 " -FAIL Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.6) is [110px auto auto 120] assert_equals: expected "70px auto auto 80 " but got "110px auto auto 120 " +PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) is [40px auto auto 50] +PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.6) is [70px auto auto 80] PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1) is [110px auto auto 120] -FAIL Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1.5) is [110px auto auto 120] assert_equals: expected "160px auto auto 170 " but got "110px auto auto 120 " +PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (1.5) is [160px auto auto 170] PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (-0.3) is [10px auto auto 20] PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (0) is [10px auto auto 20] PASS Web Animations: property <border-image-width> from [10px auto auto 20] to [110px auto 120 auto] at (0.3) is [10px auto auto 20]
diff --git a/third_party/WebKit/LayoutTests/animations/interpolation/visibility-interpolation.html b/third_party/WebKit/LayoutTests/animations/interpolation/visibility-interpolation.html index b5ff785..7d366179 100644 --- a/third_party/WebKit/LayoutTests/animations/interpolation/visibility-interpolation.html +++ b/third_party/WebKit/LayoutTests/animations/interpolation/visibility-interpolation.html
@@ -29,6 +29,19 @@ assertInterpolation({ property: 'visibility', + from: 'hidden', + to: 'visible' +}, [ + {at: -1, is: 'hidden'}, + {at: 0, is: 'hidden'}, + {at: 0.1, is: 'visible'}, + {at: 0.9, is: 'visible'}, + {at: 1, is: 'visible'}, + {at: 1.5, is: 'visible'}, +]); + +assertInterpolation({ + property: 'visibility', from: 'collapse', to: 'visible' }, [
diff --git a/third_party/WebKit/LayoutTests/compositing/overflow/overflow-positioning.html b/third_party/WebKit/LayoutTests/compositing/overflow/overflow-positioning.html index d0a18743..1af9aa7 100644 --- a/third_party/WebKit/LayoutTests/compositing/overflow/overflow-positioning.html +++ b/third_party/WebKit/LayoutTests/compositing/overflow/overflow-positioning.html
@@ -54,18 +54,23 @@ if (window.testRunner) testRunner.waitUntilDone(); + function waitForCompositor() { + return document.body.animate({opacity: [1, 1]}, 1).finished; + } + function startTest() { - window.setTimeout(function() { - var mover = document.getElementById('mover'); - mover.className = 'moving'; - - window.setTimeout(function() { - if (window.testRunner) - testRunner.notifyDone(); - }, 0); - - }, 0); + var mover = document.getElementById('mover'); + getComputedStyle(mover).transform; // Force style recalc + mover.className = 'moving'; + if (window.internals) + internals.pauseAnimations(0); + + waitForCompositor().then(() => { + if (window.testRunner) { + testRunner.notifyDone(); + } + }); } window.addEventListener('load', startTest, false);
diff --git a/third_party/WebKit/LayoutTests/editing/pasteboard/resources/select-and-drag.js b/third_party/WebKit/LayoutTests/editing/pasteboard/resources/select-and-drag.js deleted file mode 100644 index cb870c8c..0000000 --- a/third_party/WebKit/LayoutTests/editing/pasteboard/resources/select-and-drag.js +++ /dev/null
@@ -1,28 +0,0 @@ -function selectListItems(startSelectionElement, endSelectionElement, endSelectionElementOffset) { - - var start = document.getElementById(startSelectionElement); - var end = document.getElementById(endSelectionElement); - - var selection = window.getSelection(); - selection.setBaseAndExtent(start, 0, end, endSelectionElementOffset); -} - -function dragSelectionToTarget(startSelectionElement, targetElement) { - - var start = document.getElementById(startSelectionElement); - var startx = start.offsetLeft; - var starty = start.offsetTop + start.offsetHeight / 2; - - eventSender.mouseMoveTo(startx, starty); - eventSender.mouseDown(); - eventSender.leapForward(200); - - var target = document.getElementById(targetElement); - var targetx = target.parentNode.offsetLeft + target.offsetLeft + target.offsetWidth / 2; - var targety = target.offsetTop + target.offsetHeight / 2; - - eventSender.mouseMoveTo(targetx, targety); - eventSender.mouseUp(); - - window.getSelection().removeAllRanges(); -}
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 fc6edf4..369a175 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,102 @@ -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE WARNING: line 7: 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 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: 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 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. This is a testharness.js-based test. -Found 2784 tests; 1904 PASS, 880 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 2184 tests; 1784 PASS, 400 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 @@ -208,78 +208,42 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -414,39 +378,21 @@ 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 the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -483,26 +429,14 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -614,13 +548,7 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -767,234 +695,126 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 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 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 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 @@ -1106,78 +926,42 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1312,39 +1096,21 @@ 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 the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -1381,26 +1147,14 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -1512,13 +1266,7 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1665,234 +1413,126 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] 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 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] 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 @@ -2004,78 +1644,42 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2210,39 +1814,21 @@ 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 the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -2279,26 +1865,14 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -2410,13 +1984,7 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2563,234 +2131,126 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] 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 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] 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 @@ -2902,78 +2362,42 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3108,39 +2532,21 @@ 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 the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -3177,26 +2583,14 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -3308,13 +2702,7 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3461,233 +2849,125 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing Harness: the test ran to completion.
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 6eb91a90..e684dd98 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,102 @@ -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE WARNING: line 7: 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 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: 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 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. This is a testharness.js-based test. -Found 2784 tests; 1904 PASS, 880 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 2184 tests; 1784 PASS, 400 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 @@ -208,78 +208,42 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -414,39 +378,21 @@ 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 the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -483,26 +429,14 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -614,13 +548,7 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -767,234 +695,126 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 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 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 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 @@ -1106,78 +926,42 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1312,39 +1096,21 @@ 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 the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -1381,26 +1147,14 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -1512,13 +1266,7 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1665,234 +1413,126 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] 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 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] 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 @@ -2004,78 +1644,42 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2210,39 +1814,21 @@ 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 the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -2279,26 +1865,14 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -2410,13 +1984,7 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2563,234 +2131,126 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] 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 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] 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 @@ -2902,78 +2362,42 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3108,39 +2532,21 @@ 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 the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -3177,26 +2583,14 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -3308,13 +2702,7 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3461,233 +2849,125 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-08-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-08-expected.txt deleted file mode 100644 index 0e725de..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-08-expected.txt +++ /dev/null
@@ -1,2998 +0,0 @@ -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -This is a testharness.js-based test. -Found 2784 tests; 1024 PASS, 1760 FAIL, 0 TIMEOUT, 0 NOTRUN. -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.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 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] 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 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -Harness: the test ran to completion. -
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 7bdd8b1..f07fae65 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,1464 +1,170 @@ -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE WARNING: line 7: 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 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: 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 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. This is a testharness.js-based test. -Found 2784 tests; 1464 PASS, 1320 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 not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.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 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] 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 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 +Found 1208 tests; 1008 PASS, 200 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 +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must do nothing +PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must do nothing +PASS Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 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 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 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 @@ -1570,78 +276,42 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1776,39 +446,21 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -1845,26 +497,14 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -1976,13 +616,7 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2129,234 +763,126 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, 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 15 [document.documentElement, 0, 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 15 [document.documentElement, 0, 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 @@ -2468,78 +994,42 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2674,39 +1164,21 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -2743,26 +1215,14 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -2874,13 +1334,7 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3027,233 +1481,125 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing Harness: the test ran to completion.
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 60b092e80..a13058b3 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,87 +1,78 @@ -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE WARNING: line 7: 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 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: 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 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. This is a testharness.js-based test. -Found 2784 tests; 1684 PASS, 1100 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1696 tests; 1396 PASS, 300 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 @@ -193,78 +184,42 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -399,39 +354,21 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -468,26 +405,14 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -599,13 +524,7 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -752,234 +671,126 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 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 17 [document.head, 1, document.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 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 @@ -1091,78 +902,42 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1297,39 +1072,21 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -1366,26 +1123,14 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -1497,13 +1242,7 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1650,234 +1389,126 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 17 [document.head, 1, document.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 17 [document.head, 1, document.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 17 [document.head, 1, document.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 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 18 [document.body, 0, document.body, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 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 @@ -1989,78 +1620,42 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2195,39 +1790,21 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -2264,26 +1841,14 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -2395,13 +1960,7 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2548,929 +2107,183 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 18 [document.body, 0, document.body, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 18 [document.body, 0, document.body, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 18 [document.body, 0, document.body, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.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 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 +PASS Range 18 [document.body, 0, document.body, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must do nothing +PASS Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must do nothing Harness: the test ran to completion.
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 7e932a7..6c4ce32 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,1464 +1,170 @@ -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE WARNING: line 7: 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 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: 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 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. This is a testharness.js-based test. -Found 2784 tests; 1464 PASS, 1320 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 not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.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 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.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 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 +Found 1208 tests; 1008 PASS, 200 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 +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must do nothing +PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must do nothing +PASS Range 21 [foreignDoc.body, 0, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 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 @@ -1570,78 +276,42 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1776,39 +446,21 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -1845,26 +497,14 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -1976,13 +616,7 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2129,234 +763,126 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 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 23 [paras[0], 0, paras[0], 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 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 @@ -2468,78 +994,42 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2674,39 +1164,21 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -2743,26 +1215,14 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -2874,13 +1334,7 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3027,233 +1481,125 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing Harness: the test ran to completion.
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 0fe5b44d..16efcb5 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
@@ -1,1580 +1,286 @@ -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE WARNING: line 7: 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 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: 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. +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. +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. +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. +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. +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. +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 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. This is a testharness.js-based test. -Found 2784 tests; 1464 PASS, 1320 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 not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 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 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 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 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 +Found 1208 tests; 1008 PASS, 200 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 +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must do nothing +PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must do nothing +PASS Range 25 [detachedPara1, 0, detachedPara1, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must do nothing PASS Range 26 [paras[0].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 26 [paras[0].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 26 [paras[0].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 @@ -1686,78 +392,42 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1892,39 +562,21 @@ 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 the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -1961,26 +613,14 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -2092,13 +732,7 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2245,234 +879,126 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] 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 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] 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 @@ -2584,78 +1110,42 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2790,39 +1280,21 @@ 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 the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -2859,26 +1331,14 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -2990,13 +1450,7 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3143,233 +1597,125 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing Harness: the test ran to completion.
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 c8dcd5b..dccdd28 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,102 @@ -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE WARNING: line 7: 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 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: 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 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. This is a testharness.js-based test. -Found 2784 tests; 1904 PASS, 880 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 2184 tests; 1784 PASS, 400 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 @@ -208,78 +208,42 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -414,39 +378,21 @@ 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 the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -483,26 +429,14 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -614,13 +548,7 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -767,234 +695,126 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] 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 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] 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 @@ -1106,78 +926,42 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1312,39 +1096,21 @@ 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 the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -1381,26 +1147,14 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -1512,13 +1266,7 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1665,234 +1413,126 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 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 30 [testDiv, 2, paras[4], 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 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 @@ -2004,78 +1644,42 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2210,39 +1814,21 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -2279,26 +1865,14 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -2410,13 +1984,7 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2563,234 +2131,126 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] 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 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] 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 @@ -2902,78 +2362,42 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3108,39 +2532,21 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -3177,26 +2583,14 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -3308,13 +2702,7 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3461,233 +2849,125 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing Harness: the test ran to completion.
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 4d42dc9..ca8e651 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,87 +1,78 @@ -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE WARNING: line 7: 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 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: 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 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. This is a testharness.js-based test. -Found 2784 tests; 1684 PASS, 1100 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1696 tests; 1396 PASS, 300 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 @@ -193,78 +184,42 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -399,39 +354,21 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -468,26 +405,14 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -599,13 +524,7 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -752,930 +671,184 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 33 [foreignDoc.documentElement, 1, foreignDoc.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 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.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 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 +PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must do nothing +PASS Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must do nothing PASS Range 34 [document, 0, document, 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 34 [document, 0, document, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 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 @@ -1787,78 +960,42 @@ PASS Range 34 [document, 0, document, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1993,39 +1130,21 @@ PASS Range 34 [document, 0, document, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second 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]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -2062,26 +1181,14 @@ PASS Range 34 [document, 0, document, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second 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]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -2193,13 +1300,7 @@ PASS Range 34 [document, 0, document, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2346,234 +1447,126 @@ PASS Range 34 [document, 0, document, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 34 [document, 0, document, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 35 [document, 0, 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 35 [document, 0, document, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, 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 @@ -2685,78 +1678,42 @@ PASS Range 35 [document, 0, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2891,39 +1848,21 @@ PASS Range 35 [document, 0, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second 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]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -2960,26 +1899,14 @@ PASS Range 35 [document, 0, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second 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]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -3091,13 +2018,7 @@ PASS Range 35 [document, 0, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3244,233 +2165,125 @@ PASS Range 35 [document, 0, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 35 [document, 0, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing Harness: the test ran to completion.
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 da4e1684..0184bd0c 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,102 @@ -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE WARNING: line 7: 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 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: Discontiguous selection is not supported. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: 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 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. This is a testharness.js-based test. -Found 2784 tests; 1904 PASS, 880 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 2184 tests; 1784 PASS, 400 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 @@ -208,78 +208,42 @@ PASS Range 36 [document, 1, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -414,39 +378,21 @@ PASS Range 36 [document, 1, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second 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]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -483,26 +429,14 @@ PASS Range 36 [document, 1, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second 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]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -614,13 +548,7 @@ PASS Range 36 [document, 1, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -767,234 +695,126 @@ PASS Range 36 [document, 1, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 36 [document, 1, document, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] 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 37 [testDiv, 0, comment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] 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 @@ -1106,78 +926,42 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1312,39 +1096,21 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second 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]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -1381,26 +1147,14 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second 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]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -1512,13 +1266,7 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -1665,234 +1413,126 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 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 38 [paras[2].firstChild, 4, comment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 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 @@ -2004,78 +1644,42 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2210,39 +1814,21 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -2279,26 +1865,14 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -2410,13 +1984,7 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -2563,234 +2131,126 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] 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 39 [paras[3], 1, comment, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] 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 @@ -2902,78 +2362,42 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.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 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 "O" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 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 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: 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 Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 "qrstuv" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.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 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.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 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 "E" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 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 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: 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 Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 "ghijkl" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.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 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 14 [document.documentElement, 0, document.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 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3108,39 +2532,21 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 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]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 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 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 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 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 22 [paras[0], 0, paras[0], 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 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -3177,26 +2583,14 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 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 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 "Opqrstuv" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 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 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 26 [paras[0].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 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first 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]: first addRange() must result in the selection's last range having the specified endpoints @@ -3308,13 +2702,7 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: 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></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 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 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 34 [document, 0, document, 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 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints @@ -3461,233 +2849,125 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 "EfghijklMnopqrstI admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now." but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: 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><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "EfghijklMnopqrstI admit that I harbor doubts about w" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: 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 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 "do re mi fa so la ti" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: 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 Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 "Uvwxyzab" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: 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 Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 "Cdefghij" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: 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 Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 "Klmnopqr" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 50 [detachedComment, 3, detachedComment, 4]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: 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 Comment node <!--×ריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: 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 Comment node <!--בן ×—×™×™× ×ליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_equals: After 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating 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 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 55 [docfrag, 0, docfrag, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must do nothing PASS Range 39 [paras[3], 1, comment, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints PASS Range 39 [paras[3], 1, comment, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added PASS Range 39 [paras[3], 1, comment, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: 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 DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 "" but got object "" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must do nothing Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-40-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-40-expected.txt deleted file mode 100644 index 12f3c97..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-40-expected.txt +++ /dev/null
@@ -1,2824 +0,0 @@ -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -This is a testharness.js-based test. -Found 2784 tests; 1024 PASS, 1760 FAIL, 0 TIMEOUT, 0 NOTRUN. -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 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 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 40 [foreignDoc, 0, foreignDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 41 [foreignDoc, 1, foreignComment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 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 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 41 [foreignDoc, 1, foreignComment, 2] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] 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 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 42 [foreignDoc.body, 0, foreignTextNode, 36] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 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 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 43 [xmlDoc, 0, xmlDoc, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-44-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-44-expected.txt deleted file mode 100644 index fc3213e..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-44-expected.txt +++ /dev/null
@@ -1,2882 +0,0 @@ -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -This is a testharness.js-based test. -Found 2784 tests; 1024 PASS, 1760 FAIL, 0 TIMEOUT, 0 NOTRUN. -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 44 [xmlDoc, 1, xmlComment, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 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 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 44 [xmlDoc, 1, xmlComment, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] 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 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 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 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 45 [detachedTextNode, 0, detachedTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] 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 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 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 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] 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 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 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 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-48-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-48-expected.txt deleted file mode 100644 index 98770f4..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-48-expected.txt +++ /dev/null
@@ -1,2940 +0,0 @@ -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -This is a testharness.js-based test. -Found 2784 tests; 1024 PASS, 1760 FAIL, 0 TIMEOUT, 0 NOTRUN. -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] 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 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 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 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] 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 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 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 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 50 [detachedComment, 3, detachedComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 50 [detachedComment, 3, detachedComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 50 [detachedComment, 3, detachedComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 50 [detachedComment, 3, detachedComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 50 [detachedComment, 3, detachedComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 50 [detachedComment, 3, detachedComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 50 [detachedComment, 3, detachedComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 50 [detachedComment, 3, detachedComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 50 [detachedComment, 3, detachedComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 50 [detachedComment, 3, detachedComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] 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 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 50 [detachedComment, 3, detachedComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] 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 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 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 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 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 51 [detachedComment, 5, detachedComment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 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 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 51 [detachedComment, 5, detachedComment, 5] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-52-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-52-expected.txt deleted file mode 100644 index 44159ac4..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-52-expected.txt +++ /dev/null
@@ -1,2882 +0,0 @@ -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -This is a testharness.js-based test. -Found 2784 tests; 1024 PASS, 1760 FAIL, 0 TIMEOUT, 0 NOTRUN. -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 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 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 52 [detachedForeignComment, 0, detachedForeignComment, 1] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] 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 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 53 [detachedForeignComment, 4, detachedForeignComment, 4] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] 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 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 54 [detachedXmlComment, 2, detachedXmlComment, 6] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 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 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 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 55 [docfrag, 0, docfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 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 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 55 [docfrag, 0, docfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-56-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-56-expected.txt deleted file mode 100644 index 54381d8..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-56-expected.txt +++ /dev/null
@@ -1,1414 +0,0 @@ -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -CONSOLE ERROR: line 7: The given range isn't in document. -This is a testharness.js-based test. -Found 1392 tests; 512 PASS, 880 FAIL, 0 TIMEOUT, 0 NOTRUN. -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 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 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 56 [foreignDocfrag, 0, foreignDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 14 [document.documentElement, 0, document.documentElement, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 17 [document.head, 1, document.head, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 22 [paras[0], 0, paras[0], 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 25 [detachedPara1, 0, detachedPara1, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 31 [testDiv, 1, paras[2].firstChild, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 32 [document.documentElement, 1, document.body, 0]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 34 [document, 0, document, 1]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 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 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must not throw exceptions or modify the range it's given -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in rangeCount being 1 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range having the specified endpoints -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: second addRange() must result in the selection's last range being the same object we added -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the second added range must modify the Selection's last Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 39 [paras[3], 1, comment, 8]: modifying the Selection's last Range must modify the second added Range -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 40 [foreignDoc, 0, foreignDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 41 [foreignDoc, 1, foreignComment, 2]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 43 [xmlDoc, 0, xmlDoc, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 44 [xmlDoc, 1, xmlComment, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 50 [detachedComment, 3, detachedComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 51 [detachedComment, 5, detachedComment, 5]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 55 [docfrag, 0, docfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: first addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the first added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the first added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -PASS Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must not throw exceptions or modify the range it's given -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in rangeCount being 1 assert_equals: rangeCount must be 1 expected 1 but got 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: second addRange() must result in the selection's last range being the same object we added assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the second added range must modify the Selection's last Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -FAIL Range 57 [xmlDocfrag, 0, xmlDocfrag, 0] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0]: modifying the Selection's last Range must modify the second added Range assert_not_equals: Cannot proceed with tests if rangeCount is 0 got disallowed value 0 -Harness: the test ran to completion. -
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange.js b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange.js index 5b94f86d..855520e 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange.js +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange.js
@@ -1,6 +1,23 @@ "use strict"; function testAddRange(exception, range, endpoints, qualifier, testName) { + if (!isSelectableNode(endpoints[0]) || !isSelectableNode(endpoints[2])) { + test(function() { + assert_equals(exception, null, "Test setup must not throw exceptions"); + + assertSelectionNoChange(function() { selection.addRange(range); }); + assert_equals(range.startContainer, endpoints[0], + "addRange() must not modify the startContainer of the Range it's given"); + assert_equals(range.startOffset, endpoints[1], + "addRange() must not modify the startOffset of the Range it's given"); + assert_equals(range.endContainer, endpoints[2], + "addRange() must not modify the endContainer of the Range it's given"); + assert_equals(range.endOffset, endpoints[3], + "addRange() must not modify the endOffset of the Range it's given"); + }, testName + ": " + qualifier + " addRange() must do nothing"); + return; + } + test(function() { assert_equals(exception, null, "Test setup must not throw exceptions"); @@ -176,7 +193,8 @@ } testAddRange(exception, range1, endpoints1, "first", testName); - testAddRange(exception, range2, endpoints2, "second", testName); + if (selection.rangeCount > 0) + testAddRange(exception, range2, endpoints2, "second", testName); } } }
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/common.js b/third_party/WebKit/LayoutTests/external/wpt/selection/common.js index 4b37c263..51579e4 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/common.js +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/common.js
@@ -977,3 +977,14 @@ "The operation should not replace a registered Range"); } +/** + * Check if the specified node can be selectable with window.getSelection() + * methods. + */ +function isSelectableNode(node) { + if (!node) + return false; + if (node.nodeType == Node.DOCUMENT_TYPE_NODE) + return false; + return document.contains(node); +}
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/extend-00-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/extend-00-expected.txt index 30e23be..9f670cf 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/extend-00-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/extend-00-expected.txt
@@ -1,357 +1,5 @@ -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. This is a testharness.js-based test. -Found 2992 tests; 2089 PASS, 903 FAIL, 0 TIMEOUT, 0 NOTRUN. -PASS extend() with range 0 [] and point 0 [paras[0].firstChild, -1] -PASS extend() with range 0 [] and point 1 [paras[0].firstChild, 0] -PASS extend() with range 0 [] and point 2 [paras[0].firstChild, 1] -PASS extend() with range 0 [] and point 3 [paras[0].firstChild, 2] -PASS extend() with range 0 [] and point 4 [paras[0].firstChild, 8] -PASS extend() with range 0 [] and point 5 [paras[0].firstChild, 9] -PASS extend() with range 0 [] and point 6 [paras[0].firstChild, 10] -PASS extend() with range 0 [] and point 7 [paras[0].firstChild, 65535] -PASS extend() with range 0 [] and point 8 [paras[1].firstChild, -1] -PASS extend() with range 0 [] and point 9 [paras[1].firstChild, 0] -PASS extend() with range 0 [] and point 10 [paras[1].firstChild, 1] -PASS extend() with range 0 [] and point 11 [paras[1].firstChild, 2] -PASS extend() with range 0 [] and point 12 [paras[1].firstChild, 8] -PASS extend() with range 0 [] and point 13 [paras[1].firstChild, 9] -PASS extend() with range 0 [] and point 14 [paras[1].firstChild, 10] -PASS extend() with range 0 [] and point 15 [paras[1].firstChild, 65535] -PASS extend() with range 0 [] and point 16 [detachedPara1.firstChild, 0] -PASS extend() with range 0 [] and point 17 [detachedPara1.firstChild, 1] -PASS extend() with range 0 [] and point 18 [detachedPara1.firstChild, 8] -PASS extend() with range 0 [] and point 19 [detachedPara1.firstChild, 9] -PASS extend() with range 0 [] and point 20 [foreignPara1.firstChild, 0] -PASS extend() with range 0 [] and point 21 [foreignPara1.firstChild, 1] -PASS extend() with range 0 [] and point 22 [foreignPara1.firstChild, 8] -PASS extend() with range 0 [] and point 23 [foreignPara1.firstChild, 9] -PASS extend() with range 0 [] and point 24 [document.documentElement, -1] -PASS extend() with range 0 [] and point 25 [document.documentElement, 0] -PASS extend() with range 0 [] and point 26 [document.documentElement, 1] -PASS extend() with range 0 [] and point 27 [document.documentElement, 2] -PASS extend() with range 0 [] and point 28 [document.documentElement, 7] -PASS extend() with range 0 [] and point 29 [document.head, 1] -PASS extend() with range 0 [] and point 30 [document.body, 3] -PASS extend() with range 0 [] and point 31 [foreignDoc.documentElement, 0] -PASS extend() with range 0 [] and point 32 [foreignDoc.documentElement, 1] -PASS extend() with range 0 [] and point 33 [foreignDoc.head, 0] -PASS extend() with range 0 [] and point 34 [foreignDoc.body, 1] -PASS extend() with range 0 [] and point 35 [paras[0], 0] -PASS extend() with range 0 [] and point 36 [paras[0], 1] -PASS extend() with range 0 [] and point 37 [paras[0], 2] -PASS extend() with range 0 [] and point 38 [paras[1], 0] -PASS extend() with range 0 [] and point 39 [paras[1], 1] -PASS extend() with range 0 [] and point 40 [paras[1], 2] -PASS extend() with range 0 [] and point 41 [detachedPara1, 0] -PASS extend() with range 0 [] and point 42 [detachedPara1, 1] -PASS extend() with range 0 [] and point 43 [testDiv, 0] -PASS extend() with range 0 [] and point 44 [testDiv, 3] -PASS extend() with range 0 [] and point 45 [document, -1] -PASS extend() with range 0 [] and point 46 [document, 0] -PASS extend() with range 0 [] and point 47 [document, 1] -PASS extend() with range 0 [] and point 48 [document, 2] -PASS extend() with range 0 [] and point 49 [document, 3] -PASS extend() with range 0 [] and point 50 [comment, -1] -PASS extend() with range 0 [] and point 51 [comment, 0] -PASS extend() with range 0 [] and point 52 [comment, 4] -PASS extend() with range 0 [] and point 53 [comment, 96] -PASS extend() with range 0 [] and point 54 [foreignDoc, 0] -PASS extend() with range 0 [] and point 55 [foreignDoc, 1] -PASS extend() with range 0 [] and point 56 [foreignComment, 2] -PASS extend() with range 0 [] and point 57 [foreignTextNode, 0] -PASS extend() with range 0 [] and point 58 [foreignTextNode, 36] -PASS extend() with range 0 [] and point 59 [xmlDoc, -1] -PASS extend() with range 0 [] and point 60 [xmlDoc, 0] -PASS extend() with range 0 [] and point 61 [xmlDoc, 1] -PASS extend() with range 0 [] and point 62 [xmlDoc, 5] -PASS extend() with range 0 [] and point 63 [xmlComment, 0] -PASS extend() with range 0 [] and point 64 [xmlComment, 4] -PASS extend() with range 0 [] and point 65 [processingInstruction, 0] -PASS extend() with range 0 [] and point 66 [processingInstruction, 5] -PASS extend() with range 0 [] and point 67 [processingInstruction, 9] -PASS extend() with range 0 [] and point 68 [detachedTextNode, 0] -PASS extend() with range 0 [] and point 69 [detachedTextNode, 8] -PASS extend() with range 0 [] and point 70 [detachedForeignTextNode, 0] -PASS extend() with range 0 [] and point 71 [detachedForeignTextNode, 8] -PASS extend() with range 0 [] and point 72 [detachedXmlTextNode, 0] -PASS extend() with range 0 [] and point 73 [detachedXmlTextNode, 8] -PASS extend() with range 0 [] and point 74 [detachedProcessingInstruction, 12] -PASS extend() with range 0 [] and point 75 [detachedComment, 3] -PASS extend() with range 0 [] and point 76 [detachedComment, 5] -PASS extend() with range 0 [] and point 77 [detachedForeignComment, 0] -PASS extend() with range 0 [] and point 78 [detachedForeignComment, 4] -PASS extend() with range 0 [] and point 79 [detachedXmlComment, 2] -PASS extend() with range 0 [] and point 80 [docfrag, 0] -PASS extend() with range 0 [] and point 81 [foreignDocfrag, 0] -PASS extend() with range 0 [] and point 82 [xmlDocfrag, 0] -PASS extend() with range 0 [] and point 83 [doctype, 0] -PASS extend() with range 0 [] and point 84 [doctype, -17] -PASS extend() with range 0 [] and point 85 [doctype, 1] -PASS extend() with range 0 [] and point 86 [foreignDoctype, 0] -PASS extend() with range 0 [] and point 87 [xmlDoctype, 0] +Found 2024 tests; 2001 PASS, 23 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 0 [paras[0].firstChild, -1] PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 1 [paras[0].firstChild, 0] PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 2 [paras[0].firstChild, 1] @@ -1612,886 +1260,6 @@ PASS extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 86 [foreignDoctype, 0] PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 87 [xmlDoctype, 0] PASS extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 87 [xmlDoctype, 0] -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 0 [paras[0].firstChild, -1] PASS extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 0 [paras[0].firstChild, -1] PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 1 [paras[0].firstChild, 0]
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/extend-20-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/extend-20-expected.txt index 8f3626f..800aadb 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/extend-20-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/extend-20-expected.txt
@@ -1,533 +1,5 @@ -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. This is a testharness.js-based test. -Found 3168 tests; 2349 PASS, 819 FAIL, 0 TIMEOUT, 0 NOTRUN. -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 +Found 2376 tests; 2349 PASS, 27 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 0 [paras[0].firstChild, -1] PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 1 [paras[0].firstChild, 0] PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 2 [paras[0].firstChild, 1] @@ -798,270 +270,6 @@ PASS extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 86 [foreignDoctype, 0] PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 87 [xmlDoctype, 0] PASS extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 87 [xmlDoctype, 0] -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 0 [paras[0].firstChild, -1] PASS extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 0 [paras[0].firstChild, -1] PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 1 [paras[0].firstChild, 0] @@ -2322,182 +1530,6 @@ PASS extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 86 [foreignDoctype, 0] PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 87 [xmlDoctype, 0] PASS extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 87 [xmlDoctype, 0] -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 PASS extend() forwards with range 35 [document, 0, document, 1] and point 0 [paras[0].firstChild, -1] PASS extend() backwards with range 35 [document, 0, document, 1] and point 0 [paras[0].firstChild, -1] PASS extend() forwards with range 35 [document, 0, document, 1] and point 1 [paras[0].firstChild, 0]
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/extend-40-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/extend-40-expected.txt index 0105fe4..7684a3d 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/extend-40-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/extend-40-expected.txt
@@ -1,357 +1,5 @@ -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. -CONSOLE ERROR: line 944: The given range isn't in document. This is a testharness.js-based test. -Found 2552 tests; 174 PASS, 2378 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 176 tests; 174 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS extend() forwards with range 40 [paras[3], 1, comment, 8] and point 0 [paras[0].firstChild, -1] PASS extend() backwards with range 40 [paras[3], 1, comment, 8] and point 0 [paras[0].firstChild, -1] PASS extend() forwards with range 40 [paras[3], 1, comment, 8] and point 1 [paras[0].firstChild, 0] @@ -532,2381 +180,5 @@ PASS extend() backwards with range 40 [paras[3], 1, comment, 8] and point 86 [foreignDoctype, 0] PASS extend() forwards with range 40 [paras[3], 1, comment, 8] and point 87 [xmlDoctype, 0] PASS extend() backwards with range 40 [paras[3], 1, comment, 8] and point 87 [xmlDoctype, 0] -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 41 [foreignDoc, 0, foreignDoc, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 42 [foreignDoc, 1, foreignComment, 2] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 43 [foreignDoc.body, 0, foreignTextNode, 36] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 44 [xmlDoc, 0, xmlDoc, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 45 [xmlDoc, 1, xmlComment, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 46 [detachedTextNode, 0, detachedTextNode, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 51 [detachedComment, 3, detachedComment, 4] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 51 [detachedComment, 3, detachedComment, 4] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 52 [detachedComment, 5, detachedComment, 5] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 53 [detachedForeignComment, 0, detachedForeignComment, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 54 [detachedForeignComment, 4, detachedForeignComment, 4] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() forwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() backwards with range 55 [detachedXmlComment, 2, detachedXmlComment, 6] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 56 [docfrag, 0, docfrag, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 57 [foreignDocfrag, 0, foreignDocfrag, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 -FAIL extend() with range 58 [xmlDocfrag, 0, xmlDocfrag, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0 Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/extend.js b/third_party/WebKit/LayoutTests/external/wpt/selection/extend.js index 6a2307e..a3be628 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/extend.js +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/extend.js
@@ -23,6 +23,9 @@ // selections only once. for (var i = startIndex; i < endIndex; i++) { var endpoints = eval(testRanges[i]); + // We can't test extend() with unselectable endpoints. + if (!isSelectableNode(endpoints[0]) || !isSelectableNode(endpoints[2])) + continue; for (var j = 0; j < testPoints.length; j++) { if (endpoints[0] == endpoints[2] && endpoints[1] == endpoints[3]) {
diff --git a/third_party/WebKit/LayoutTests/fast/forms/range/range-drag-expected.txt b/third_party/WebKit/LayoutTests/fast/forms/range/range-drag-expected.txt index 579e36f..5398bda 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/range/range-drag-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/forms/range/range-drag-expected.txt
@@ -5,8 +5,8 @@ PASS input.value is "100" PASS changeEventCounter is >= lastChangeEventCounter + 1 readOnly=true -PASS input.value is "50" -PASS lastChangeEventCounter is changeEventCounter +PASS input.value is "100" +PASS changeEventCounter is >= lastChangeEventCounter + 1 disabled=true PASS input.value is "50" PASS lastChangeEventCounter is changeEventCounter @@ -16,8 +16,8 @@ PASS input.value is "100" PASS changeEventCounter is >= lastChangeEventCounter + 1 readOnly=true -PASS input.value is "50" -PASS lastChangeEventCounter is changeEventCounter +PASS input.value is "100" +PASS changeEventCounter is >= lastChangeEventCounter + 1 disabled=true PASS input.value is "50" PASS lastChangeEventCounter is changeEventCounter
diff --git a/third_party/WebKit/LayoutTests/fast/forms/range/range-drag.html b/third_party/WebKit/LayoutTests/fast/forms/range/range-drag.html index 96d62ed..c8b0fea 100644 --- a/third_party/WebKit/LayoutTests/fast/forms/range/range-drag.html +++ b/third_party/WebKit/LayoutTests/fast/forms/range/range-drag.html
@@ -51,8 +51,8 @@ input.valueAsNumber = 50; lastChangeEventCounter = changeEventCounter; dragMouse(); - shouldBe('input.value', '"50"'); - shouldBe('lastChangeEventCounter', 'changeEventCounter'); + shouldBe('input.value', '"100"'); + shouldBeGreaterThanOrEqual('changeEventCounter', 'lastChangeEventCounter + 1'); debug('disabled=true'); input.readOnly = false;
diff --git a/third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-error.html b/third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-error.html new file mode 100644 index 0000000..d4aa434 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/mediarecorder/MediaRecorder-error.html
@@ -0,0 +1,60 @@ +<!DOCTYPE html> +<script src=../../resources/testharness.js></script> +<script src=../../resources/testharnessreport.js></script> +<body> + <!-- canvas cannot be arbitrarily small --> + <canvas id='canvas'/> +</body> +<script> + +var test = async_test('forces an error in the MediaRecorder API by changing ' + + 'the amount of tracks in the MediaStream, and checks that the correct ' + + 'sequence ondataavailable-stop-error is enforced'); +var recorder; +var stream; + +function drawSomethingOnCanvas(canvas) { + // Drawing something on the canvas generates a frame in its captured stream. + var context = canvas.getContext("2d"); + context.fillStyle = "red"; + context.fillRect(0, 0, 10, 10); +} + +recorderOnDataAvailable = test.step_func(function(event) { + recorder.onstop = recorderOnStop; + + // Add another track to the MediaStream to force an error. + stream.addTrack(stream.getVideoTracks()[0].clone()); + drawSomethingOnCanvas(document.getElementById('canvas')); +}); + +recorderOnStop = test.step_func(function() { + recorder.onstop = test.unreached_func('Unexpected stop event'); + recorder.ondataavailable = test.unreached_func('Unexpected data event'); + recorder.onerror = recorderOnError; +}); + +recorderOnError = test.step_func(function() { + test.done(); +}); + +var step = test.step_func(function() { + var canvas = document.getElementById('canvas'); + stream = canvas.captureStream(); + assert_equals(stream.getVideoTracks()[0].readyState, 'live'); + + recorder = new MediaRecorder(stream); + + recorder.onstop = test.unreached_func('Unexpected stop event'); + recorder.onpause = test.unreached_func('Unexpected pause event'); + recorder.onresume = test.unreached_func('Unexpected resume event'); + recorder.onerror = test.unreached_func('Unexpected error event'); + recorder.ondataavailable = recorderOnDataAvailable; + + recorder.start(0); + drawSomethingOnCanvas(canvas); +}); + +step(); + +</script>
diff --git a/third_party/WebKit/Source/build/scripts/make_computed_style_base.py b/third_party/WebKit/Source/build/scripts/make_computed_style_base.py index a24ebf77..1367b7f1 100755 --- a/third_party/WebKit/Source/build/scripts/make_computed_style_base.py +++ b/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
@@ -49,8 +49,6 @@ 'property_name', # Name of the type (e.g. EClear, int) 'type_name', - # Path to predefined class for overriding generated types. - 'field_type_path', # Affects how the field is generated (keyword, flag) 'field_template', # Bits needed for storage @@ -90,6 +88,17 @@ assert len(kwargs) == 0, 'Unexpected arguments provided to Field: ' + str(kwargs) +def _get_include_paths(properties): + """ + Get a list of paths that need to be included for ComputedStyleBase. + """ + include_paths = set() + for property_ in properties: + if property_['field_type_path'] is not None: + include_paths.add(property_['field_type_path'] + '.h') + return list(sorted(include_paths)) + + def _create_enums(properties): """ Returns a dictionary of enums to be generated, enum name -> [list of enum values] @@ -127,10 +136,8 @@ # Separate the type path from the type name, if specified. if property_['field_type_path']: - field_type_path = property_['field_type_path'] - type_name = field_type_path.split('/')[-1] + type_name = property_['field_type_path'].split('/')[-1] else: - field_type_path = None type_name = property_['type_name'] # For now, the getter name should match the field name. Later, getter names @@ -152,7 +159,6 @@ inherited=property_['inherited'], independent=property_['independent'], type_name=type_name, - field_type_path=field_type_path, field_template=property_['field_template'], size=int(math.ceil(bits_needed)), default_value=default_value, @@ -180,7 +186,6 @@ name='m_' + field_name_suffix_lower, property_name=property_['name'], type_name='bool', - field_type_path=None, field_template='flag', size=1, default_value='true', @@ -203,7 +208,6 @@ name=member_name, property_name=field_name, type_name='bool', - field_type_path=None, field_template='flag', size=1, default_value='false', @@ -318,6 +322,7 @@ return { 'properties': self._properties, 'enums': self._generated_enums, + 'include_paths': _get_include_paths(self._properties.values()), 'fields': self._fields, 'expected_total_field_bytes': self._expected_total_field_bytes, }
diff --git a/third_party/WebKit/Source/build/scripts/make_css_property_apis.py b/third_party/WebKit/Source/build/scripts/make_css_property_apis.py index 95ab014a..ed317cd 100755 --- a/third_party/WebKit/Source/build/scripts/make_css_property_apis.py +++ b/third_party/WebKit/Source/build/scripts/make_css_property_apis.py
@@ -14,7 +14,7 @@ from make_style_builder import StyleBuilderWriter -class ApiMethod(namedtuple('ApiMethod', 'return_type,parameters')): +class ApiMethod(namedtuple('ApiMethod', 'return_type,parameters,description')): pass @@ -44,6 +44,7 @@ self._outputs = { 'CSSPropertyDescriptor.cpp': self.generate_property_descriptor_cpp, + 'CSSPropertyAPI.h': self.generate_property_api, } # Stores a map of API method name -> (return_type, parameters) @@ -53,9 +54,11 @@ self.ordered_api_method_names = [] for api_method in self.css_property_api_methods.name_dictionaries: self.ordered_api_method_names.append(api_method['name']) + # TODO(shend): wrap description to 72 chars self.all_api_methods[api_method['name']] = ApiMethod( return_type=api_method['return_type'], parameters=api_method['parameters'], + description=api_method['description'], ) # Temporary map of API classname to list of propertyIDs that the API class is for. @@ -90,6 +93,13 @@ 'ordered_api_method_names': self.ordered_api_method_names, } + @template_expander.use_jinja('CSSPropertyAPI.h.tmpl') + def generate_property_api(self): + return { + 'ordered_api_method_names': self.ordered_api_method_names, + 'all_api_methods': self.all_api_methods, + } + # Provides a function object given the classname of the property. def generate_property_api_h_builder(self, api_classname): @template_expander.use_jinja('CSSPropertyAPIFiles.h.tmpl')
diff --git a/third_party/WebKit/Source/build/scripts/templates/CSSPropertyAPI.h.tmpl b/third_party/WebKit/Source/build/scripts/templates/CSSPropertyAPI.h.tmpl new file mode 100644 index 0000000..5f996a0 --- /dev/null +++ b/third_party/WebKit/Source/build/scripts/templates/CSSPropertyAPI.h.tmpl
@@ -0,0 +1,46 @@ +// Copyright 2016 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CSSPropertyAPI_h +#define CSSPropertyAPI_h + +#include "core/CSSPropertyNames.h" +#include "wtf/Allocator.h" + +namespace blink { + +class CSSValue; +class CSSParserContext; +class CSSParserTokenRange; + +// We will use this API to represent all functions used for property-specific +// logic inside the blink style engine. All specific properties are subclasses +// of CSSPropertyAPI. +// +// To add a new implementation of this API for a property: +// - Make a class that implements CSSPropertyAPI. +// - For each method that you wish to implement in this class, add this method +// name to the api_methods flag in CSSProperties.json5. +// - Implement these methods in the .cpp file. +// +// To add new functions to this API: +// - Add the function to the struct below. +// - Add the function name to the valid_values field for api_methods in +// CSSProperties.json5. +class CSSPropertyAPI { + STATIC_ONLY(CSSPropertyAPI); + + public: + {% for api_method_name in ordered_api_method_names %} + {% set api_method = all_api_methods[api_method_name] %} + {% if api_method.description %} + // {{api_method.description}} + {% endif %} + static {{api_method.return_type}} {{api_method_name}}{{api_method.parameters}}; + {% endfor %} +}; + +} // namespace blink + +#endif // CSSPropertyAPI_h
diff --git a/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl b/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl index 738b7249..8c7a5c4 100644 --- a/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl +++ b/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
@@ -6,8 +6,8 @@ #include "core/ComputedStyleBaseConstants.h" #include "core/CoreExport.h" -{% for field in fields if field.field_type_path != None %} -#include "{{field.field_type_path}}.h" +{% for path in include_paths %} +#include "{{path}}" {% endfor %} {# Returns the default value for the field, converted to fit in the storage container. #}
diff --git a/third_party/WebKit/Source/core/BUILD.gn b/third_party/WebKit/Source/core/BUILD.gn index eb820f2..4345d43 100644 --- a/third_party/WebKit/Source/core/BUILD.gn +++ b/third_party/WebKit/Source/core/BUILD.gn
@@ -418,10 +418,12 @@ other_inputs = [ "../build/scripts/templates/CSSPropertyDescriptor.cpp.tmpl", "../build/scripts/templates/CSSPropertyAPIFiles.h.tmpl", + "../build/scripts/templates/CSSPropertyAPI.h.tmpl", ] in_files = [ "css/properties/CSSPropertyAPIMethods.json5" ] outputs = [ "$blink_core_output_dir/css/properties/CSSPropertyDescriptor.cpp", + "$blink_core_output_dir/css/properties/CSSPropertyAPI.h", "$blink_core_output_dir/css/properties/CSSPropertyAPIColumnCount.h", "$blink_core_output_dir/css/properties/CSSPropertyAPIVerticalAlign.h", "$blink_core_output_dir/css/properties/CSSPropertyAPIClipPath.h",
diff --git a/third_party/WebKit/Source/core/animation/BUILD.gn b/third_party/WebKit/Source/core/animation/BUILD.gn index e584072..bccd78f 100644 --- a/third_party/WebKit/Source/core/animation/BUILD.gn +++ b/third_party/WebKit/Source/core/animation/BUILD.gn
@@ -25,6 +25,8 @@ "BasicShapeInterpolationFunctions.cpp", "BasicShapeInterpolationFunctions.h", "BorderImageLengthBoxPropertyFunctions.h", + "CSSAngleInterpolationType.cpp", + "CSSAngleInterpolationType.h", "CSSBasicShapeInterpolationType.cpp", "CSSBasicShapeInterpolationType.h", "CSSBorderImageLengthBoxInterpolationType.cpp", @@ -75,6 +77,8 @@ "CSSSizeListInterpolationType.h", "CSSTextIndentInterpolationType.cpp", "CSSTextIndentInterpolationType.h", + "CSSTimeInterpolationType.cpp", + "CSSTimeInterpolationType.h", "CSSTransformInterpolationType.cpp", "CSSTransformInterpolationType.h", "CSSTransformOriginInterpolationType.h", @@ -205,6 +209,8 @@ "TimingInput.h", "TransitionInterpolation.cpp", "TransitionInterpolation.h", + "TransitionKeyframe.cpp", + "TransitionKeyframe.h", "TypedInterpolationValue.h", "UnderlyingValueOwner.cpp", "UnderlyingValueOwner.h",
diff --git a/third_party/WebKit/Source/core/animation/CSSAngleInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSAngleInterpolationType.cpp new file mode 100644 index 0000000..c8f9a949 --- /dev/null +++ b/third_party/WebKit/Source/core/animation/CSSAngleInterpolationType.cpp
@@ -0,0 +1,35 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/animation/CSSAngleInterpolationType.h" + +#include "core/css/CSSPrimitiveValue.h" + +namespace blink { + +InterpolationValue CSSAngleInterpolationType::maybeConvertNeutral( + const InterpolationValue&, + ConversionCheckers&) const { + return InterpolationValue(InterpolableNumber::create(0)); +} + +InterpolationValue CSSAngleInterpolationType::maybeConvertValue( + const CSSValue& value, + const StyleResolverState*, + ConversionCheckers&) const { + if (!value.isPrimitiveValue() || !toCSSPrimitiveValue(value).isAngle()) + return nullptr; + return InterpolationValue( + InterpolableNumber::create(toCSSPrimitiveValue(value).computeDegrees())); +} + +const CSSValue* CSSAngleInterpolationType::createCSSValue( + const InterpolableValue& value, + const NonInterpolableValue*, + const StyleResolverState&) const { + return CSSPrimitiveValue::create(toInterpolableNumber(value).value(), + CSSPrimitiveValue::UnitType::Degrees); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/CSSAngleInterpolationType.h b/third_party/WebKit/Source/core/animation/CSSAngleInterpolationType.h new file mode 100644 index 0000000..5455828 --- /dev/null +++ b/third_party/WebKit/Source/core/animation/CSSAngleInterpolationType.h
@@ -0,0 +1,58 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CSSAngleInterpolationType_h +#define CSSAngleInterpolationType_h + +#include "core/animation/CSSInterpolationType.h" + +namespace blink { + +class CSSAngleInterpolationType : public CSSInterpolationType { + public: + CSSAngleInterpolationType(PropertyHandle property) + : CSSInterpolationType(property) { + DCHECK(property.isCSSCustomProperty()); + } + + InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, + ConversionCheckers&) const final; + InterpolationValue maybeConvertValue(const CSSValue&, + const StyleResolverState*, + ConversionCheckers&) const final; + + const CSSValue* createCSSValue(const InterpolableValue&, + const NonInterpolableValue*, + const StyleResolverState&) const final; + + private: + // These methods only apply to CSSInterpolationTypes used by standard CSS + // properties. + // CSSAngleInterpolationType is only accessible via registered custom CSS + // properties. + InterpolationValue maybeConvertStandardPropertyUnderlyingValue( + const ComputedStyle&) const final { + NOTREACHED(); + return nullptr; + } + void applyStandardPropertyValue(const InterpolableValue&, + const NonInterpolableValue*, + StyleResolverState&) const final { + NOTREACHED(); + } + InterpolationValue maybeConvertInitial(const StyleResolverState&, + ConversionCheckers&) const final { + NOTREACHED(); + return nullptr; + } + InterpolationValue maybeConvertInherit(const StyleResolverState&, + ConversionCheckers&) const final { + NOTREACHED(); + return nullptr; + } +}; + +} // namespace blink + +#endif // CSSAngleInterpolationType_h
diff --git a/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp index 9625b29..f9b781a 100644 --- a/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp +++ b/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp
@@ -4,12 +4,13 @@ #include "core/animation/CSSBorderImageLengthBoxInterpolationType.h" +#include <memory> #include "core/animation/BorderImageLengthBoxPropertyFunctions.h" #include "core/animation/LengthInterpolationFunctions.h" +#include "core/css/CSSIdentifierValue.h" #include "core/css/CSSQuadValue.h" #include "core/css/resolver/StyleResolverState.h" #include "wtf/PtrUtil.h" -#include <memory> namespace blink { @@ -23,34 +24,58 @@ SideIndexCount, }; -struct SideNumbers { - explicit SideNumbers(const BorderImageLengthBox& box) { - isNumber[SideTop] = box.top().isNumber(); - isNumber[SideRight] = box.right().isNumber(); - isNumber[SideBottom] = box.bottom().isNumber(); - isNumber[SideLeft] = box.left().isNumber(); +enum class SideType { + Number, + Auto, + Length, +}; + +SideType getSideType(const BorderImageLength& side) { + if (side.isNumber()) { + return SideType::Number; } - explicit SideNumbers(const CSSQuadValue& quad) { - isNumber[SideTop] = quad.top()->isPrimitiveValue() && - toCSSPrimitiveValue(quad.top())->isNumber(); - isNumber[SideRight] = quad.right()->isPrimitiveValue() && - toCSSPrimitiveValue(quad.right())->isNumber(); - isNumber[SideBottom] = quad.bottom()->isPrimitiveValue() && - toCSSPrimitiveValue(quad.bottom())->isNumber(); - isNumber[SideLeft] = quad.left()->isPrimitiveValue() && - toCSSPrimitiveValue(quad.left())->isNumber(); + if (side.length().isAuto()) { + return SideType::Auto; + } + DCHECK(side.length().isSpecified()); + return SideType::Length; +} + +SideType getSideType(const CSSValue& side) { + if (side.isPrimitiveValue() && toCSSPrimitiveValue(side).isNumber()) { + return SideType::Number; + } + if (side.isIdentifierValue() && + toCSSIdentifierValue(side).getValueID() == CSSValueAuto) { + return SideType::Auto; + } + return SideType::Length; +} + +struct SideTypes { + explicit SideTypes(const BorderImageLengthBox& box) { + type[SideTop] = getSideType(box.top()); + type[SideRight] = getSideType(box.right()); + type[SideBottom] = getSideType(box.bottom()); + type[SideLeft] = getSideType(box.left()); + } + explicit SideTypes(const CSSQuadValue& quad) { + type[SideTop] = getSideType(*quad.top()); + type[SideRight] = getSideType(*quad.right()); + type[SideBottom] = getSideType(*quad.bottom()); + type[SideLeft] = getSideType(*quad.left()); } - bool operator==(const SideNumbers& other) const { + bool operator==(const SideTypes& other) const { for (size_t i = 0; i < SideIndexCount; i++) { - if (isNumber[i] != other.isNumber[i]) + if (type[i] != other.type[i]) return false; } return true; } - bool operator!=(const SideNumbers& other) const { return !(*this == other); } + bool operator!=(const SideTypes& other) const { return !(*this == other); } - bool isNumber[SideIndexCount]; + SideType type[SideIndexCount]; }; } // namespace @@ -59,13 +84,19 @@ : public NonInterpolableValue { public: static PassRefPtr<CSSBorderImageLengthBoxNonInterpolableValue> create( - const SideNumbers& sideNumbers, + const SideTypes& sideTypes, Vector<RefPtr<NonInterpolableValue>>&& sideNonInterpolableValues) { return adoptRef(new CSSBorderImageLengthBoxNonInterpolableValue( - sideNumbers, std::move(sideNonInterpolableValues))); + sideTypes, std::move(sideNonInterpolableValues))); } - const SideNumbers& sideNumbers() const { return m_sideNumbers; } + PassRefPtr<CSSBorderImageLengthBoxNonInterpolableValue> clone() { + return adoptRef(new CSSBorderImageLengthBoxNonInterpolableValue( + m_sideTypes, + Vector<RefPtr<NonInterpolableValue>>(m_sideNonInterpolableValues))); + } + + const SideTypes& sideTypes() const { return m_sideTypes; } const Vector<RefPtr<NonInterpolableValue>>& sideNonInterpolableValues() const { return m_sideNonInterpolableValues; @@ -78,14 +109,14 @@ private: CSSBorderImageLengthBoxNonInterpolableValue( - const SideNumbers& sideNumbers, + const SideTypes& sideTypes, Vector<RefPtr<NonInterpolableValue>>&& sideNonInterpolableValues) - : m_sideNumbers(sideNumbers), + : m_sideTypes(sideTypes), m_sideNonInterpolableValues(sideNonInterpolableValues) { DCHECK_EQ(m_sideNonInterpolableValues.size(), SideIndexCount); } - const SideNumbers m_sideNumbers; + const SideTypes m_sideTypes; Vector<RefPtr<NonInterpolableValue>> m_sideNonInterpolableValues; }; @@ -95,59 +126,56 @@ namespace { -class UnderlyingSideNumbersChecker - : public InterpolationType::ConversionChecker { +class UnderlyingSideTypesChecker : public InterpolationType::ConversionChecker { public: - static std::unique_ptr<UnderlyingSideNumbersChecker> create( - const SideNumbers& underlyingSideNumbers) { - return WTF::wrapUnique( - new UnderlyingSideNumbersChecker(underlyingSideNumbers)); + static std::unique_ptr<UnderlyingSideTypesChecker> create( + const SideTypes& underlyingSideTypes) { + return WTF::wrapUnique(new UnderlyingSideTypesChecker(underlyingSideTypes)); } - static SideNumbers getUnderlyingSideNumbers( + static SideTypes getUnderlyingSideTypes( const InterpolationValue& underlying) { return toCSSBorderImageLengthBoxNonInterpolableValue( *underlying.nonInterpolableValue) - .sideNumbers(); + .sideTypes(); } private: - UnderlyingSideNumbersChecker(const SideNumbers& underlyingSideNumbers) - : m_underlyingSideNumbers(underlyingSideNumbers) {} + UnderlyingSideTypesChecker(const SideTypes& underlyingSideTypes) + : m_underlyingSideTypes(underlyingSideTypes) {} bool isValid(const InterpolationEnvironment&, const InterpolationValue& underlying) const final { - return m_underlyingSideNumbers == getUnderlyingSideNumbers(underlying); + return m_underlyingSideTypes == getUnderlyingSideTypes(underlying); } - const SideNumbers m_underlyingSideNumbers; + const SideTypes m_underlyingSideTypes; }; -class InheritedSideNumbersChecker - : public InterpolationType::ConversionChecker { +class InheritedSideTypesChecker : public InterpolationType::ConversionChecker { public: - static std::unique_ptr<InheritedSideNumbersChecker> create( + static std::unique_ptr<InheritedSideTypesChecker> create( CSSPropertyID property, - const SideNumbers& inheritedSideNumbers) { + const SideTypes& inheritedSideTypes) { return WTF::wrapUnique( - new InheritedSideNumbersChecker(property, inheritedSideNumbers)); + new InheritedSideTypesChecker(property, inheritedSideTypes)); } private: - InheritedSideNumbersChecker(CSSPropertyID property, - const SideNumbers& inheritedSideNumbers) - : m_property(property), m_inheritedSideNumbers(inheritedSideNumbers) {} + InheritedSideTypesChecker(CSSPropertyID property, + const SideTypes& inheritedSideTypes) + : m_property(property), m_inheritedSideTypes(inheritedSideTypes) {} bool isValid(const InterpolationEnvironment& environment, const InterpolationValue& underlying) const final { - return m_inheritedSideNumbers == - SideNumbers( + return m_inheritedSideTypes == + SideTypes( BorderImageLengthBoxPropertyFunctions::getBorderImageLengthBox( m_property, *environment.state().parentStyle())); } const CSSPropertyID m_property; - const SideNumbers m_inheritedSideNumbers; + const SideTypes m_inheritedSideTypes; }; InterpolationValue convertBorderImageLengthBox(const BorderImageLengthBox& box, @@ -165,6 +193,8 @@ const BorderImageLength& side = *sides[i]; if (side.isNumber()) { list->set(i, InterpolableNumber::create(side.number())); + } else if (side.length().isAuto()) { + list->set(i, InterpolableList::create(0)); } else { InterpolationValue convertedSide = LengthInterpolationFunctions::maybeConvertLength(side.length(), zoom); @@ -177,7 +207,7 @@ return InterpolationValue( std::move(list), CSSBorderImageLengthBoxNonInterpolableValue::create( - SideNumbers(box), std::move(nonInterpolableValues))); + SideTypes(box), std::move(nonInterpolableValues))); } } // namespace @@ -186,18 +216,14 @@ CSSBorderImageLengthBoxInterpolationType::maybeConvertNeutral( const InterpolationValue& underlying, ConversionCheckers& conversionCheckers) const { - SideNumbers underlyingSideNumbers = - UnderlyingSideNumbersChecker::getUnderlyingSideNumbers(underlying); + SideTypes underlyingSideTypes = + UnderlyingSideTypesChecker::getUnderlyingSideTypes(underlying); conversionCheckers.push_back( - UnderlyingSideNumbersChecker::create(underlyingSideNumbers)); - const auto& zero = [&underlyingSideNumbers](size_t index) { - return underlyingSideNumbers.isNumber[index] - ? BorderImageLength(0) - : BorderImageLength(Length(0, Fixed)); - }; - BorderImageLengthBox zeroBox(zero(SideTop), zero(SideRight), zero(SideBottom), - zero(SideLeft)); - return convertBorderImageLengthBox(zeroBox, 1); + UnderlyingSideTypesChecker::create(underlyingSideTypes)); + return InterpolationValue(underlying.interpolableValue->cloneAndZero(), + toCSSBorderImageLengthBoxNonInterpolableValue( + *underlying.nonInterpolableValue) + .clone()); } InterpolationValue @@ -217,8 +243,8 @@ const BorderImageLengthBox& inherited = BorderImageLengthBoxPropertyFunctions::getBorderImageLengthBox( cssProperty(), *state.parentStyle()); - conversionCheckers.push_back(InheritedSideNumbersChecker::create( - cssProperty(), SideNumbers(inherited))); + conversionCheckers.push_back( + InheritedSideTypesChecker::create(cssProperty(), SideTypes(inherited))); return convertBorderImageLengthBox(inherited, state.parentStyle()->effectiveZoom()); } @@ -245,6 +271,9 @@ if (side.isPrimitiveValue() && toCSSPrimitiveValue(side).isNumber()) { list->set(i, InterpolableNumber::create( toCSSPrimitiveValue(side).getDoubleValue())); + } else if (side.isIdentifierValue() && + toCSSIdentifierValue(side).getValueID() == CSSValueAuto) { + list->set(i, InterpolableList::create(0)); } else { InterpolationValue convertedSide = LengthInterpolationFunctions::maybeConvertCSSValue(side); @@ -256,9 +285,8 @@ } return InterpolationValue( - std::move(list), - CSSBorderImageLengthBoxNonInterpolableValue::create( - SideNumbers(quad), std::move(nonInterpolableValues))); + std::move(list), CSSBorderImageLengthBoxNonInterpolableValue::create( + SideTypes(quad), std::move(nonInterpolableValues))); } InterpolationValue CSSBorderImageLengthBoxInterpolationType:: @@ -274,14 +302,13 @@ CSSBorderImageLengthBoxInterpolationType::maybeMergeSingles( InterpolationValue&& start, InterpolationValue&& end) const { - const SideNumbers& startSideNumbers = + const SideTypes& startSideTypes = toCSSBorderImageLengthBoxNonInterpolableValue(*start.nonInterpolableValue) - .sideNumbers(); - const SideNumbers& endSideNumbers = + .sideTypes(); + const SideTypes& endSideTypes = toCSSBorderImageLengthBoxNonInterpolableValue(*end.nonInterpolableValue) - .sideNumbers(); - - if (startSideNumbers != endSideNumbers) + .sideTypes(); + if (startSideTypes != endSideTypes) return nullptr; return PairwiseInterpolationValue(std::move(start.interpolableValue), @@ -294,16 +321,16 @@ double underlyingFraction, const InterpolationValue& value, double interpolationFraction) const { - const SideNumbers& underlyingSideNumbers = + const SideTypes& underlyingSideTypes = toCSSBorderImageLengthBoxNonInterpolableValue( *underlyingValueOwner.value().nonInterpolableValue) - .sideNumbers(); + .sideTypes(); const auto& nonInterpolableValue = toCSSBorderImageLengthBoxNonInterpolableValue( *value.nonInterpolableValue); - const SideNumbers& sideNumbers = nonInterpolableValue.sideNumbers(); + const SideTypes& sideTypes = nonInterpolableValue.sideTypes(); - if (underlyingSideNumbers != sideNumbers) { + if (underlyingSideTypes != sideTypes) { underlyingValueOwner.set(*this, value); return; } @@ -320,13 +347,23 @@ nonInterpolableValue.sideNonInterpolableValues(); for (size_t i = 0; i < SideIndexCount; i++) { - if (sideNumbers.isNumber[i]) - underlyingList.getMutable(i)->scaleAndAdd(underlyingFraction, - *list.get(i)); - else - LengthInterpolationFunctions::composite( - underlyingList.getMutable(i), underlyingSideNonInterpolableValues[i], - underlyingFraction, *list.get(i), sideNonInterpolableValues[i].get()); + switch (sideTypes.type[i]) { + case SideType::Number: + underlyingList.getMutable(i)->scaleAndAdd(underlyingFraction, + *list.get(i)); + break; + case SideType::Length: + LengthInterpolationFunctions::composite( + underlyingList.getMutable(i), + underlyingSideNonInterpolableValues[i], underlyingFraction, + *list.get(i), sideNonInterpolableValues[i].get()); + break; + case SideType::Auto: + break; + default: + NOTREACHED(); + break; + } } } @@ -334,21 +371,29 @@ const InterpolableValue& interpolableValue, const NonInterpolableValue* nonInterpolableValue, StyleResolverState& state) const { - const SideNumbers& sideNumbers = + const SideTypes& sideTypes = toCSSBorderImageLengthBoxNonInterpolableValue(nonInterpolableValue) - ->sideNumbers(); + ->sideTypes(); const Vector<RefPtr<NonInterpolableValue>>& nonInterpolableValues = toCSSBorderImageLengthBoxNonInterpolableValue(nonInterpolableValue) ->sideNonInterpolableValues(); const InterpolableList& list = toInterpolableList(interpolableValue); - const auto& convertSide = - [&sideNumbers, &list, &state, - &nonInterpolableValues](size_t index) -> BorderImageLength { - if (sideNumbers.isNumber[index]) - return clampTo<double>(toInterpolableNumber(list.get(index))->value(), 0); - return LengthInterpolationFunctions::createLength( - *list.get(index), nonInterpolableValues[index].get(), - state.cssToLengthConversionData(), ValueRangeNonNegative); + const auto& convertSide = [&sideTypes, &list, &state, &nonInterpolableValues]( + size_t index) -> BorderImageLength { + switch (sideTypes.type[index]) { + case SideType::Number: + return clampTo<double>(toInterpolableNumber(list.get(index))->value(), + 0); + case SideType::Auto: + return Length(Auto); + case SideType::Length: + return LengthInterpolationFunctions::createLength( + *list.get(index), nonInterpolableValues[index].get(), + state.cssToLengthConversionData(), ValueRangeNonNegative); + default: + NOTREACHED(); + return Length(Auto); + } }; BorderImageLengthBox box(convertSide(SideTop), convertSide(SideRight), convertSide(SideBottom), convertSide(SideLeft));
diff --git a/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp b/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp index b8bc222a..7fee7a65 100644 --- a/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp +++ b/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
@@ -5,6 +5,7 @@ #include "core/animation/CSSInterpolationTypesMap.h" #include <memory> +#include "core/animation/CSSAngleInterpolationType.h" #include "core/animation/CSSBasicShapeInterpolationType.h" #include "core/animation/CSSBorderImageLengthBoxInterpolationType.h" #include "core/animation/CSSClipInterpolationType.h" @@ -29,6 +30,7 @@ #include "core/animation/CSSShadowListInterpolationType.h" #include "core/animation/CSSSizeListInterpolationType.h" #include "core/animation/CSSTextIndentInterpolationType.h" +#include "core/animation/CSSTimeInterpolationType.h" #include "core/animation/CSSTransformInterpolationType.h" #include "core/animation/CSSTransformOriginInterpolationType.h" #include "core/animation/CSSTranslateInterpolationType.h" @@ -340,20 +342,26 @@ } switch (component.m_type) { + case CSSSyntaxType::Angle: + result.push_back(WTF::makeUnique<CSSAngleInterpolationType>(property)); + break; case CSSSyntaxType::Color: result.push_back(WTF::makeUnique<CSSColorInterpolationType>(property)); break; case CSSSyntaxType::Length: + case CSSSyntaxType::LengthPercentage: + case CSSSyntaxType::Percentage: result.push_back(WTF::makeUnique<CSSLengthInterpolationType>(property)); break; case CSSSyntaxType::Number: - case CSSSyntaxType::Percentage: - case CSSSyntaxType::LengthPercentage: + result.push_back(WTF::makeUnique<CSSNumberInterpolationType>(property)); + break; + case CSSSyntaxType::Time: + result.push_back(WTF::makeUnique<CSSTimeInterpolationType>(property)); + break; case CSSSyntaxType::Image: case CSSSyntaxType::Url: case CSSSyntaxType::Integer: - case CSSSyntaxType::Angle: - case CSSSyntaxType::Time: case CSSSyntaxType::Resolution: case CSSSyntaxType::TransformFunction: // TODO(alancutter): Support smooth interpolation of these types.
diff --git a/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.cpp index 03954520..3f9dca28 100644 --- a/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.cpp +++ b/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.cpp
@@ -36,6 +36,14 @@ const double m_number; }; +const CSSValue* CSSNumberInterpolationType::createCSSValue( + const InterpolableValue& value, + const NonInterpolableValue*, + const StyleResolverState&) const { + return CSSPrimitiveValue::create(toInterpolableNumber(value).value(), + CSSPrimitiveValue::UnitType::Number); +} + InterpolationValue CSSNumberInterpolationType::createNumberValue( double number) const { return InterpolationValue(InterpolableNumber::create(number));
diff --git a/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.h b/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.h index 1fc7333..5c0d310 100644 --- a/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.h +++ b/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.h
@@ -20,6 +20,10 @@ const NonInterpolableValue*, StyleResolverState&) const final; + const CSSValue* createCSSValue(const InterpolableValue&, + const NonInterpolableValue*, + const StyleResolverState&) const final; + private: InterpolationValue createNumberValue(double number) const; InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying,
diff --git a/third_party/WebKit/Source/core/animation/CSSTimeInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSTimeInterpolationType.cpp new file mode 100644 index 0000000..05c59e6 --- /dev/null +++ b/third_party/WebKit/Source/core/animation/CSSTimeInterpolationType.cpp
@@ -0,0 +1,35 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/animation/CSSTimeInterpolationType.h" + +#include "core/css/CSSPrimitiveValue.h" + +namespace blink { + +InterpolationValue CSSTimeInterpolationType::maybeConvertNeutral( + const InterpolationValue&, + ConversionCheckers&) const { + return InterpolationValue(InterpolableNumber::create(0)); +} + +InterpolationValue CSSTimeInterpolationType::maybeConvertValue( + const CSSValue& value, + const StyleResolverState*, + ConversionCheckers&) const { + if (!value.isPrimitiveValue() || !toCSSPrimitiveValue(value).isTime()) + return nullptr; + return InterpolationValue( + InterpolableNumber::create(toCSSPrimitiveValue(value).computeSeconds())); +} + +const CSSValue* CSSTimeInterpolationType::createCSSValue( + const InterpolableValue& value, + const NonInterpolableValue*, + const StyleResolverState&) const { + return CSSPrimitiveValue::create(toInterpolableNumber(value).value(), + CSSPrimitiveValue::UnitType::Seconds); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/CSSTimeInterpolationType.h b/third_party/WebKit/Source/core/animation/CSSTimeInterpolationType.h new file mode 100644 index 0000000..4f868e7 --- /dev/null +++ b/third_party/WebKit/Source/core/animation/CSSTimeInterpolationType.h
@@ -0,0 +1,58 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CSSTimeInterpolationType_h +#define CSSTimeInterpolationType_h + +#include "core/animation/CSSInterpolationType.h" + +namespace blink { + +class CSSTimeInterpolationType : public CSSInterpolationType { + public: + CSSTimeInterpolationType(PropertyHandle property) + : CSSInterpolationType(property) { + DCHECK(property.isCSSCustomProperty()); + } + + InterpolationValue maybeConvertNeutral(const InterpolationValue& underlying, + ConversionCheckers&) const final; + InterpolationValue maybeConvertValue(const CSSValue&, + const StyleResolverState*, + ConversionCheckers&) const final; + + const CSSValue* createCSSValue(const InterpolableValue&, + const NonInterpolableValue*, + const StyleResolverState&) const final; + + private: + // These methods only apply to CSSInterpolationTypes used by standard CSS + // properties. + // CSSTimeInterpolationType is only accessible via registered custom CSS + // properties. + InterpolationValue maybeConvertStandardPropertyUnderlyingValue( + const ComputedStyle&) const final { + NOTREACHED(); + return nullptr; + } + void applyStandardPropertyValue(const InterpolableValue&, + const NonInterpolableValue*, + StyleResolverState&) const final { + NOTREACHED(); + } + InterpolationValue maybeConvertInitial(const StyleResolverState&, + ConversionCheckers&) const final { + NOTREACHED(); + return nullptr; + } + InterpolationValue maybeConvertInherit(const StyleResolverState&, + ConversionCheckers&) const final { + NOTREACHED(); + return nullptr; + } +}; + +} // namespace blink + +#endif // CSSTimeInterpolationType_h
diff --git a/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.cpp index 12ec3a5..33019b66 100644 --- a/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.cpp +++ b/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.cpp
@@ -27,10 +27,13 @@ static PassRefPtr<CSSTransformNonInterpolableValue> create( CSSTransformNonInterpolableValue&& start, - CSSTransformNonInterpolableValue&& end) { + double startFraction, + CSSTransformNonInterpolableValue&& end, + double endFraction) { return adoptRef(new CSSTransformNonInterpolableValue( - false, std::move(start.transform()), std::move(end.transform()), - start.isAdditive(), end.isAdditive())); + false, start.getInterpolatedTransform(startFraction), + end.getInterpolatedTransform(endFraction), start.isAdditive(), + end.isAdditive())); } PassRefPtr<CSSTransformNonInterpolableValue> composite( @@ -59,15 +62,15 @@ void setSingleAdditive() { DCHECK(m_isSingle); m_isStartAdditive = true; + m_isEndAdditive = true; } TransformOperations getInterpolatedTransform(double progress) const { - DCHECK(!m_isStartAdditive && !m_isEndAdditive); - DCHECK(!m_isSingle || progress == 0); if (progress == 0) return m_start; if (progress == 1) return m_end; + DCHECK(!isAdditive()); return m_end.blend(m_start, progress); } @@ -89,13 +92,10 @@ DCHECK(m_isSingle); return m_start; } - TransformOperations& transform() { - DCHECK(m_isSingle); - return m_start; - } bool isAdditive() const { - DCHECK(m_isSingle); - return m_isStartAdditive; + bool result = m_isStartAdditive || m_isEndAdditive; + DCHECK(!result || m_isSingle); + return result; } Vector<RefPtr<TransformOperation>> concat(const TransformOperations& a, @@ -217,13 +217,16 @@ PairwiseInterpolationValue CSSTransformInterpolationType::maybeMergeSingles( InterpolationValue&& start, InterpolationValue&& end) const { + double startFraction = toInterpolableNumber(*start.interpolableValue).value(); + double endFraction = toInterpolableNumber(*end.interpolableValue).value(); return PairwiseInterpolationValue( InterpolableNumber::create(0), InterpolableNumber::create(1), CSSTransformNonInterpolableValue::create( std::move( toCSSTransformNonInterpolableValue(*start.nonInterpolableValue)), - std::move( - toCSSTransformNonInterpolableValue(*end.nonInterpolableValue)))); + startFraction, std::move(toCSSTransformNonInterpolableValue( + *end.nonInterpolableValue)), + endFraction)); } InterpolationValue
diff --git a/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp b/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp index fa1abf6..008414c7 100644 --- a/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp +++ b/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp
@@ -30,9 +30,8 @@ return m_start; if (fraction >= 1) return m_end; - if (m_start == EVisibility::kVisible || m_end == EVisibility::kVisible) - return EVisibility::kVisible; - return fraction < 0.5 ? m_start : m_end; + DCHECK(m_start == EVisibility::kVisible || m_end == EVisibility::kVisible); + return EVisibility::kVisible; } DECLARE_NON_INTERPOLABLE_VALUE_TYPE(); @@ -161,13 +160,23 @@ PairwiseInterpolationValue CSSVisibilityInterpolationType::maybeMergeSingles( InterpolationValue&& start, InterpolationValue&& end) const { - return PairwiseInterpolationValue( - InterpolableNumber::create(0), InterpolableNumber::create(1), - CSSVisibilityNonInterpolableValue::create( - toCSSVisibilityNonInterpolableValue(*start.nonInterpolableValue) - .visibility(), - toCSSVisibilityNonInterpolableValue(*end.nonInterpolableValue) - .visibility())); + EVisibility startVisibility = + toCSSVisibilityNonInterpolableValue(*start.nonInterpolableValue) + .visibility(); + EVisibility endVisibility = + toCSSVisibilityNonInterpolableValue(*end.nonInterpolableValue) + .visibility(); + // One side must be "visible". + // Spec: https://drafts.csswg.org/css-transitions/#animtype-visibility + if (startVisibility != endVisibility && + startVisibility != EVisibility::kVisible && + endVisibility != EVisibility::kVisible) { + return nullptr; + } + return PairwiseInterpolationValue(InterpolableNumber::create(0), + InterpolableNumber::create(1), + CSSVisibilityNonInterpolableValue::create( + startVisibility, endVisibility)); } void CSSVisibilityInterpolationType::composite(
diff --git a/third_party/WebKit/Source/core/animation/Keyframe.h b/third_party/WebKit/Source/core/animation/Keyframe.h index 9a70eb90f..323096f0 100644 --- a/third_party/WebKit/Source/core/animation/Keyframe.h +++ b/third_party/WebKit/Source/core/animation/Keyframe.h
@@ -59,6 +59,7 @@ virtual bool isAnimatableValueKeyframe() const { return false; } virtual bool isStringKeyframe() const { return false; } + virtual bool isTransitionKeyframe() const { return false; } // Represents a property-value pair in a keyframe. class PropertySpecificKeyframe : public RefCounted<PropertySpecificKeyframe> { @@ -93,6 +94,7 @@ } virtual bool isCSSPropertySpecificKeyframe() const { return false; } virtual bool isSVGPropertySpecificKeyframe() const { return false; } + virtual bool isTransitionPropertySpecificKeyframe() const { return false; } virtual PassRefPtr<PropertySpecificKeyframe> neutralKeyframe( double offset,
diff --git a/third_party/WebKit/Source/core/animation/KeyframeEffectModel.h b/third_party/WebKit/Source/core/animation/KeyframeEffectModel.h index a92b608..57329c68 100644 --- a/third_party/WebKit/Source/core/animation/KeyframeEffectModel.h +++ b/third_party/WebKit/Source/core/animation/KeyframeEffectModel.h
@@ -31,12 +31,14 @@ #ifndef KeyframeEffectModel_h #define KeyframeEffectModel_h +#include <memory> #include "core/CoreExport.h" #include "core/animation/AnimationEffectReadOnly.h" #include "core/animation/EffectModel.h" #include "core/animation/InterpolationEffect.h" #include "core/animation/PropertyHandle.h" #include "core/animation/StringKeyframe.h" +#include "core/animation/TransitionKeyframe.h" #include "core/animation/animatable/AnimatableValueKeyframe.h" #include "platform/animation/TimingFunction.h" #include "platform/heap/Handle.h" @@ -44,7 +46,6 @@ #include "wtf/HashSet.h" #include "wtf/PassRefPtr.h" #include "wtf/Vector.h" -#include <memory> namespace blink { @@ -105,6 +106,7 @@ virtual bool isAnimatableValueKeyframeEffectModel() const { return false; } virtual bool isStringKeyframeEffectModel() const { return false; } + virtual bool isTransitionKeyframeEffectModel() const { return false; } bool hasSyntheticKeyframes() const { ensureKeyframeGroups(); @@ -187,6 +189,7 @@ virtual bool isAnimatableValueKeyframeEffectModel() const { return false; } virtual bool isStringKeyframeEffectModel() const { return false; } + virtual bool isTransitionKeyframeEffectModel() const { return false; } }; using KeyframeVector = KeyframeEffectModelBase::KeyframeVector; @@ -205,6 +208,11 @@ using StringPropertySpecificKeyframeVector = StringKeyframeEffectModel::PropertySpecificKeyframeVector; +using TransitionKeyframeEffectModel = KeyframeEffectModel<TransitionKeyframe>; +using TransitionKeyframeVector = TransitionKeyframeEffectModel::KeyframeVector; +using TransitionPropertySpecificKeyframeVector = + TransitionKeyframeEffectModel::PropertySpecificKeyframeVector; + DEFINE_TYPE_CASTS(KeyframeEffectModelBase, EffectModel, value, @@ -220,6 +228,11 @@ value, value->isStringKeyframeEffectModel(), value.isStringKeyframeEffectModel()); +DEFINE_TYPE_CASTS(TransitionKeyframeEffectModel, + KeyframeEffectModelBase, + value, + value->isTransitionKeyframeEffectModel(), + value.isTransitionKeyframeEffectModel()); inline const AnimatableValueKeyframeEffectModel* toAnimatableValueKeyframeEffectModel(const EffectModel* base) { @@ -241,6 +254,11 @@ return toStringKeyframeEffectModel(toKeyframeEffectModelBase(base)); } +inline TransitionKeyframeEffectModel* toTransitionKeyframeEffectModel( + EffectModel* base) { + return toTransitionKeyframeEffectModel(toKeyframeEffectModelBase(base)); +} + template <> inline bool KeyframeEffectModel< AnimatableValueKeyframe>::isAnimatableValueKeyframeEffectModel() const { @@ -253,6 +271,12 @@ return true; } +template <> +inline bool KeyframeEffectModel< + TransitionKeyframe>::isTransitionKeyframeEffectModel() const { + return true; +} + } // namespace blink #endif // KeyframeEffectModel_h
diff --git a/third_party/WebKit/Source/core/animation/LengthInterpolationFunctions.cpp b/third_party/WebKit/Source/core/animation/LengthInterpolationFunctions.cpp index 1553826b..2dbbb20 100644 --- a/third_party/WebKit/Source/core/animation/LengthInterpolationFunctions.cpp +++ b/third_party/WebKit/Source/core/animation/LengthInterpolationFunctions.cpp
@@ -213,8 +213,8 @@ for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) { double value = toInterpolableNumber(*interpolableList.get(i)).value(); - if (value == 0 || - (i == CSSPrimitiveValue::UnitTypePercentage && !hasPercentage)) { + if (value == 0 && + (i != CSSPrimitiveValue::UnitTypePercentage || !hasPercentage)) { continue; } CSSPrimitiveValue* currentValue =
diff --git a/third_party/WebKit/Source/core/animation/TransitionKeyframe.cpp b/third_party/WebKit/Source/core/animation/TransitionKeyframe.cpp new file mode 100644 index 0000000..ec72a497 --- /dev/null +++ b/third_party/WebKit/Source/core/animation/TransitionKeyframe.cpp
@@ -0,0 +1,49 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/animation/TransitionKeyframe.h" + +#include "core/animation/CompositorAnimations.h" +#include "core/animation/InterpolationType.h" +#include "core/animation/PairwiseInterpolationValue.h" +#include "core/animation/TransitionInterpolation.h" + +namespace blink { + +void TransitionKeyframe::setCompositorValue( + RefPtr<AnimatableValue> compositorValue) { + DCHECK_EQ( + CompositorAnimations::isCompositableProperty(m_property.cssProperty()), + static_cast<bool>(compositorValue.get())); + m_compositorValue = std::move(compositorValue); +} + +PropertyHandleSet TransitionKeyframe::properties() const { + PropertyHandleSet result; + result.insert(m_property); + return result; +} + +PassRefPtr<Keyframe::PropertySpecificKeyframe> +TransitionKeyframe::createPropertySpecificKeyframe( + const PropertyHandle& property) const { + DCHECK(property == m_property); + return PropertySpecificKeyframe::create(offset(), &easing(), composite(), + m_value->clone(), m_compositorValue); +} + +PassRefPtr<Interpolation> +TransitionKeyframe::PropertySpecificKeyframe::createInterpolation( + const PropertyHandle& property, + const Keyframe::PropertySpecificKeyframe& otherSuperClass) const { + const PropertySpecificKeyframe& other = + toTransitionPropertySpecificKeyframe(otherSuperClass); + DCHECK(m_value->type() == other.m_value->type()); + return TransitionInterpolation::create( + property, m_value->type(), m_value->value().clone(), + other.m_value->value().clone(), m_compositorValue, + other.m_compositorValue); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/animation/TransitionKeyframe.h b/third_party/WebKit/Source/core/animation/TransitionKeyframe.h new file mode 100644 index 0000000..838f3e8 --- /dev/null +++ b/third_party/WebKit/Source/core/animation/TransitionKeyframe.h
@@ -0,0 +1,117 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef TransitionKeyframe_h +#define TransitionKeyframe_h + +#include "core/CoreExport.h" +#include "core/animation/Keyframe.h" +#include "core/animation/TypedInterpolationValue.h" +#include "core/animation/animatable/AnimatableValue.h" + +namespace blink { + +class CORE_EXPORT TransitionKeyframe : public Keyframe { + public: + static PassRefPtr<TransitionKeyframe> create(const PropertyHandle& property) { + return adoptRef(new TransitionKeyframe(property)); + } + void setValue(std::unique_ptr<TypedInterpolationValue> value) { + m_value = std::move(value); + } + void setCompositorValue(RefPtr<AnimatableValue>); + PropertyHandleSet properties() const final; + + class PropertySpecificKeyframe : public Keyframe::PropertySpecificKeyframe { + public: + static PassRefPtr<PropertySpecificKeyframe> create( + double offset, + PassRefPtr<TimingFunction> easing, + EffectModel::CompositeOperation composite, + std::unique_ptr<TypedInterpolationValue> value, + RefPtr<AnimatableValue> compositorValue) { + return adoptRef(new PropertySpecificKeyframe(offset, std::move(easing), + composite, std::move(value), + std::move(compositorValue))); + } + + PassRefPtr<AnimatableValue> getAnimatableValue() const final { + return m_compositorValue; + } + + bool isNeutral() const final { return false; } + PassRefPtr<Keyframe::PropertySpecificKeyframe> neutralKeyframe( + double offset, + PassRefPtr<TimingFunction> easing) const final { + NOTREACHED(); + return nullptr; + } + PassRefPtr<Interpolation> createInterpolation( + const PropertyHandle&, + const Keyframe::PropertySpecificKeyframe& other) const final; + + bool isTransitionPropertySpecificKeyframe() const final { return true; } + + private: + PropertySpecificKeyframe(double offset, + PassRefPtr<TimingFunction> easing, + EffectModel::CompositeOperation composite, + std::unique_ptr<TypedInterpolationValue> value, + RefPtr<AnimatableValue> compositorValue) + : Keyframe::PropertySpecificKeyframe(offset, + std::move(easing), + composite), + m_value(std::move(value)), + m_compositorValue(std::move(compositorValue)) {} + + PassRefPtr<Keyframe::PropertySpecificKeyframe> cloneWithOffset( + double offset) const final { + return create(offset, m_easing, m_composite, m_value->clone(), + m_compositorValue); + } + + std::unique_ptr<TypedInterpolationValue> m_value; + RefPtr<AnimatableValue> m_compositorValue; + }; + + private: + TransitionKeyframe(const PropertyHandle& property) : m_property(property) {} + + TransitionKeyframe(const TransitionKeyframe& copyFrom) + : Keyframe(copyFrom.m_offset, copyFrom.m_composite, copyFrom.m_easing), + m_property(copyFrom.m_property), + m_value(copyFrom.m_value->clone()), + m_compositorValue(copyFrom.m_compositorValue) {} + + bool isTransitionKeyframe() const final { return true; } + + PassRefPtr<Keyframe> clone() const final { + return adoptRef(new TransitionKeyframe(*this)); + } + + PassRefPtr<Keyframe::PropertySpecificKeyframe> createPropertySpecificKeyframe( + const PropertyHandle&) const final; + + PropertyHandle m_property; + std::unique_ptr<TypedInterpolationValue> m_value; + RefPtr<AnimatableValue> m_compositorValue; +}; + +using TransitionPropertySpecificKeyframe = + TransitionKeyframe::PropertySpecificKeyframe; + +DEFINE_TYPE_CASTS(TransitionKeyframe, + Keyframe, + value, + value->isTransitionKeyframe(), + value.isTransitionKeyframe()); +DEFINE_TYPE_CASTS(TransitionPropertySpecificKeyframe, + Keyframe::PropertySpecificKeyframe, + value, + value->isTransitionPropertySpecificKeyframe(), + value.isTransitionPropertySpecificKeyframe()); + +} // namespace blink + +#endif
diff --git a/third_party/WebKit/Source/core/animation/animatable/AnimatableValueKeyframe.h b/third_party/WebKit/Source/core/animation/animatable/AnimatableValueKeyframe.h index 118d92d..5ffd1146 100644 --- a/third_party/WebKit/Source/core/animation/animatable/AnimatableValueKeyframe.h +++ b/third_party/WebKit/Source/core/animation/animatable/AnimatableValueKeyframe.h
@@ -12,6 +12,8 @@ namespace blink { +// TODO(alancutter): Delete this class once TransitionKeyframe has completely +// replaced it. class CORE_EXPORT AnimatableValueKeyframe : public Keyframe { public: static PassRefPtr<AnimatableValueKeyframe> create() {
diff --git a/third_party/WebKit/Source/core/css/BUILD.gn b/third_party/WebKit/Source/core/css/BUILD.gn index a511f393..6b2783ac 100644 --- a/third_party/WebKit/Source/core/css/BUILD.gn +++ b/third_party/WebKit/Source/core/css/BUILD.gn
@@ -345,7 +345,6 @@ "parser/MediaQueryParser.cpp", "parser/SizesAttributeParser.cpp", "parser/SizesCalcParser.cpp", - "properties/CSSPropertyAPI.h", "properties/CSSPropertyAPIAlignItems.cpp", "properties/CSSPropertyAPIAlignOrJustifyContent.cpp", "properties/CSSPropertyAPIAlignOrJustifySelf.cpp",
diff --git a/third_party/WebKit/Source/core/css/properties/CSSPropertyAPI.h b/third_party/WebKit/Source/core/css/properties/CSSPropertyAPI.h deleted file mode 100644 index 0280eb94..0000000 --- a/third_party/WebKit/Source/core/css/properties/CSSPropertyAPI.h +++ /dev/null
@@ -1,57 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CSSPropertyAPI_h -#define CSSPropertyAPI_h - -#include "core/CSSPropertyNames.h" -#include "wtf/Allocator.h" - -namespace blink { - -class CSSValue; -class CSSParserContext; -class CSSParserTokenRange; - -// We will use this API to represent all functions used for property-specific -// logic inside the blink style engine. All specific properties are subclasses -// of CSSPropertyAPI. -// -// To add a new implementation of this API for a property: -// - Make a class that implements CSSPropertyAPI. -// - For each method that you wish to implement in this class, add this method -// name to the api_methods flag in CSSProperties.json5. -// - Implement these methods in the .cpp file. -// -// To add new functions to this API: -// - Add the function to the struct below. -// - Add the function name to the valid_values field for api_methods in -// CSSProperties.json5. -class CSSPropertyAPI { - STATIC_ONLY(CSSPropertyAPI); - - public: - // Parses a single CSS property and returns the corresponding CSSValue. If the - // input is invalid it returns nullptr. - static const CSSValue* parseSingleValue(CSSParserTokenRange&, - const CSSParserContext*) { - // No code should reach here, since properties either have their own - // implementations of this method or store nullptr in their descriptor. - NOTREACHED(); - return nullptr; - } - - static bool parseShorthand(bool, - CSSParserTokenRange&, - const CSSParserContext*) { - // No code should reach here, since properties either have their own - // implementations of this method or store nullptr in their descriptor. - NOTREACHED(); - return false; - } -}; - -} // namespace blink - -#endif // CSSPropertyAPI_h
diff --git a/third_party/WebKit/Source/core/css/properties/CSSPropertyAPIMethods.json5 b/third_party/WebKit/Source/core/css/properties/CSSPropertyAPIMethods.json5 index d30344c..ea48fa9 100644 --- a/third_party/WebKit/Source/core/css/properties/CSSPropertyAPIMethods.json5 +++ b/third_party/WebKit/Source/core/css/properties/CSSPropertyAPIMethods.json5
@@ -22,18 +22,28 @@ parameters: { default: "", valid_type: "str", - } + }, + + // - description + // A string comment describing the API method. This comment will be + // placed in the code above the method definition in CSSPropertyAPI.h. + description: { + default: "", + valid_type: "str", + }, }, data: [ { name: "parseSingleValue", return_type: "const CSSValue*", - parameters: "(CSSParserTokenRange&, const CSSParserContext*)" + parameters: "(CSSParserTokenRange&, const CSSParserContext*)", + description: "Parses a single CSS property and returns the corresponding CSSValue. If the input is invalid it returns nullptr.", }, { name: "parseShorthand", return_type: "bool", - parameters: "(bool, CSSParserTokenRange&, const CSSParserContext*)" + parameters: "(bool, CSSParserTokenRange&, const CSSParserContext*)", + description: "Returns true if the property can be parsed as a shorthand.", }, ] }
diff --git a/third_party/WebKit/Source/core/editing/BUILD.gn b/third_party/WebKit/Source/core/editing/BUILD.gn index 0449e43..01bb06b5 100644 --- a/third_party/WebKit/Source/core/editing/BUILD.gn +++ b/third_party/WebKit/Source/core/editing/BUILD.gn
@@ -195,8 +195,12 @@ "spellcheck/TextCheckingParagraph.h", "state_machines/BackspaceStateMachine.cpp", "state_machines/BackspaceStateMachine.h", + "state_machines/BackwardCodePointStateMachine.cpp", + "state_machines/BackwardCodePointStateMachine.h", "state_machines/BackwardGraphemeBoundaryStateMachine.cpp", "state_machines/BackwardGraphemeBoundaryStateMachine.h", + "state_machines/ForwardCodePointStateMachine.cpp", + "state_machines/ForwardCodePointStateMachine.h", "state_machines/ForwardGraphemeBoundaryStateMachine.cpp", "state_machines/ForwardGraphemeBoundaryStateMachine.h", "state_machines/StateMachineUtil.cpp", @@ -257,7 +261,9 @@ "serializers/StyledMarkupSerializerTest.cpp", "spellcheck/SpellCheckerTest.cpp", "state_machines/BackspaceStateMachineTest.cpp", + "state_machines/BackwardCodePointStateMachineTest.cpp", "state_machines/BackwardGraphemeBoundaryStateMachineTest.cpp", + "state_machines/ForwardCodePointStateMachineTest.cpp", "state_machines/ForwardGraphemeBoundaryStateMachineTest.cpp", "state_machines/StateMachineTestUtil.cpp", "state_machines/StateMachineUtilTest.cpp",
diff --git a/third_party/WebKit/Source/core/editing/DOMSelection.cpp b/third_party/WebKit/Source/core/editing/DOMSelection.cpp index bb6e173..ae43837 100644 --- a/third_party/WebKit/Source/core/editing/DOMSelection.cpp +++ b/third_party/WebKit/Source/core/editing/DOMSelection.cpp
@@ -459,6 +459,17 @@ // 3. Let oldAnchor and oldFocus be the context object's anchor and focus, and // let newFocus be the boundary point (node, offset). const Position& oldAnchor = anchorPosition(); + // TODO(tkent): Diagnostic checks for crbug.com/693578. They should be + // removed before M58 branch. + if (oldAnchor.isNull()) { + if (Range* range = documentCachedRange()) { + LOG(FATAL) + << "Selection has a cached Range, but anchorPosition is null. start=" + << range->startContainer() << " end=" << range->endContainer(); + } else if (frame() && !frame()->selection().isNone()) { + LOG(FATAL) << "FrameSelection is not none, but anchorPosition is null."; + } + } DCHECK(!oldAnchor.isNull()); const Position newFocus(node, offset);
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.cpp b/third_party/WebKit/Source/core/editing/FrameSelection.cpp index ffb32c4..89a0135c 100644 --- a/third_party/WebKit/Source/core/editing/FrameSelection.cpp +++ b/third_party/WebKit/Source/core/editing/FrameSelection.cpp
@@ -343,12 +343,6 @@ options, align, granularity); } -void FrameSelection::setSelection( - const VisibleSelectionInFlatTree& newSelection, - SetSelectionOptions options) { - setSelection(newSelection.asSelection(), options); -} - // TODO(yosin): We should move |computePositionForChildrenRemoval()| to // "SelectionEditor.cpp" since it used only in // |SelectionEditor::nodeChildrenWillBeRemoved()|.
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.h b/third_party/WebKit/Source/core/editing/FrameSelection.h index 44328838..ad429ce 100644 --- a/third_party/WebKit/Source/core/editing/FrameSelection.h +++ b/third_party/WebKit/Source/core/editing/FrameSelection.h
@@ -150,7 +150,6 @@ SetSelectionOptions = CloseTyping | ClearTypingStyle, CursorAlignOnScroll = CursorAlignOnScroll::IfNeeded, TextGranularity = CharacterGranularity); - void setSelection(const VisibleSelectionInFlatTree&, SetSelectionOptions); bool setSelectedRange( const EphemeralRange&, TextAffinity,
diff --git a/third_party/WebKit/Source/core/editing/SelectionEditor.cpp b/third_party/WebKit/Source/core/editing/SelectionEditor.cpp index e34bba5..3cbe4ec 100644 --- a/third_party/WebKit/Source/core/editing/SelectionEditor.cpp +++ b/third_party/WebKit/Source/core/editing/SelectionEditor.cpp
@@ -123,6 +123,8 @@ } void SelectionEditor::markCacheDirty() { + if (m_cacheIsDirty) + return; m_cachedVisibleSelectionInFlatTree = VisibleSelectionInFlatTree(); m_cachedVisibleSelectionInDOMTree = VisibleSelection(); m_cacheIsDirty = true;
diff --git a/third_party/WebKit/Source/core/editing/state_machines/BackwardCodePointStateMachine.cpp b/third_party/WebKit/Source/core/editing/state_machines/BackwardCodePointStateMachine.cpp new file mode 100644 index 0000000..022aa03 --- /dev/null +++ b/third_party/WebKit/Source/core/editing/state_machines/BackwardCodePointStateMachine.cpp
@@ -0,0 +1,69 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/editing/state_machines/BackwardCodePointStateMachine.h" + +namespace blink { + +enum class BackwardCodePointStateMachine::BackwardCodePointState { + NotSurrogate, + TrailSurrogate, + Invalid, +}; + +BackwardCodePointStateMachine::BackwardCodePointStateMachine() + : m_state(BackwardCodePointState::NotSurrogate) {} + +TextSegmentationMachineState +BackwardCodePointStateMachine::feedPrecedingCodeUnit(UChar codeUnit) { + switch (m_state) { + case BackwardCodePointState::NotSurrogate: + if (U16_IS_LEAD(codeUnit)) { + m_codeUnitsToBeDeleted = 0; + m_state = BackwardCodePointState::Invalid; + return TextSegmentationMachineState::Invalid; + } + ++m_codeUnitsToBeDeleted; + if (U16_IS_TRAIL(codeUnit)) { + m_state = BackwardCodePointState::TrailSurrogate; + return TextSegmentationMachineState::NeedMoreCodeUnit; + } + return TextSegmentationMachineState::Finished; + case BackwardCodePointState::TrailSurrogate: + if (U16_IS_LEAD(codeUnit)) { + ++m_codeUnitsToBeDeleted; + m_state = BackwardCodePointState::NotSurrogate; + return TextSegmentationMachineState::Finished; + } + m_codeUnitsToBeDeleted = 0; + m_state = BackwardCodePointState::Invalid; + return TextSegmentationMachineState::Invalid; + case BackwardCodePointState::Invalid: + m_codeUnitsToBeDeleted = 0; + return TextSegmentationMachineState::Invalid; + } + NOTREACHED(); + return TextSegmentationMachineState::Invalid; +} + +TextSegmentationMachineState +BackwardCodePointStateMachine::feedFollowingCodeUnit(UChar codeUnit) { + NOTREACHED(); + return TextSegmentationMachineState::Invalid; +} + +bool BackwardCodePointStateMachine::atCodePointBoundary() { + return m_state == BackwardCodePointState::NotSurrogate; +} + +int BackwardCodePointStateMachine::getBoundaryOffset() { + return -m_codeUnitsToBeDeleted; +} + +void BackwardCodePointStateMachine::reset() { + m_codeUnitsToBeDeleted = 0; + m_state = BackwardCodePointState::NotSurrogate; +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/state_machines/BackwardCodePointStateMachine.h b/third_party/WebKit/Source/core/editing/state_machines/BackwardCodePointStateMachine.h new file mode 100644 index 0000000..5025171 --- /dev/null +++ b/third_party/WebKit/Source/core/editing/state_machines/BackwardCodePointStateMachine.h
@@ -0,0 +1,52 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BackwardCodePointStateMachine_h +#define BackwardCodePointStateMachine_h + +#include "core/CoreExport.h" +#include "core/editing/state_machines/TextSegmentationMachineState.h" +#include "wtf/Allocator.h" +#include "wtf/Noncopyable.h" +#include "wtf/text/Unicode.h" + +namespace blink { + +class CORE_EXPORT BackwardCodePointStateMachine { + STACK_ALLOCATED(); + WTF_MAKE_NONCOPYABLE(BackwardCodePointStateMachine); + + public: + BackwardCodePointStateMachine(); + ~BackwardCodePointStateMachine() = default; + + // Prepares by feeding preceding text. + TextSegmentationMachineState feedPrecedingCodeUnit(UChar codeUnit); + + // Finds boundary offset by feeding following text. + TextSegmentationMachineState feedFollowingCodeUnit(UChar codeUnit); + + // Returns true if we are at code point boundary. + bool atCodePointBoundary(); + + // Returns the next boundary offset. + int getBoundaryOffset(); + + // Resets the internal state to the initial state. + void reset(); + + private: + enum class BackwardCodePointState; + + // The number of code units to be deleted. + // Nothing to delete if there is an invalid surrogate pair. + int m_codeUnitsToBeDeleted = 0; + + // The internal state. + BackwardCodePointState m_state; +}; + +} // namespace blink + +#endif
diff --git a/third_party/WebKit/Source/core/editing/state_machines/BackwardCodePointStateMachineTest.cpp b/third_party/WebKit/Source/core/editing/state_machines/BackwardCodePointStateMachineTest.cpp new file mode 100644 index 0000000..9db55f7 --- /dev/null +++ b/third_party/WebKit/Source/core/editing/state_machines/BackwardCodePointStateMachineTest.cpp
@@ -0,0 +1,73 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/editing/state_machines/BackwardCodePointStateMachine.h" + +#include "testing/gtest/include/gtest/gtest.h" + +namespace blink { + +namespace { +const TextSegmentationMachineState kInvalid = + TextSegmentationMachineState::Invalid; +const TextSegmentationMachineState kNeedMoreCodeUnit = + TextSegmentationMachineState::NeedMoreCodeUnit; +const TextSegmentationMachineState kFinished = + TextSegmentationMachineState::Finished; +} // namespace + +TEST(BackwardCodePointStateMachineTest, DoNothingCase) { + BackwardCodePointStateMachine machine; + EXPECT_EQ(0, machine.getBoundaryOffset()); +} + +TEST(BackwardCodePointStateMachineTest, SingleCharacter) { + BackwardCodePointStateMachine machine; + EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('a')); + EXPECT_EQ(-1, machine.getBoundaryOffset()); + + machine.reset(); + EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('-')); + EXPECT_EQ(-1, machine.getBoundaryOffset()); + + machine.reset(); + EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit('\t')); + EXPECT_EQ(-1, machine.getBoundaryOffset()); + + machine.reset(); + // U+3042 HIRAGANA LETTER A. + EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(0x3042)); + EXPECT_EQ(-1, machine.getBoundaryOffset()); +} + +TEST(BackwardCodePointStateMachineTest, SurrogatePair) { + BackwardCodePointStateMachine machine; + + // U+20BB7 is \uD83D\uDDFA in UTF-16. + const UChar leadSurrogate = 0xD842; + const UChar trailSurrogate = 0xDFB7; + + EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(trailSurrogate)); + EXPECT_EQ(kFinished, machine.feedPrecedingCodeUnit(leadSurrogate)); + EXPECT_EQ(-2, machine.getBoundaryOffset()); + + // Edge cases + // Unpaired trailing surrogate. Nothing to delete. + machine.reset(); + EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(trailSurrogate)); + EXPECT_EQ(kInvalid, machine.feedPrecedingCodeUnit('a')); + EXPECT_EQ(0, machine.getBoundaryOffset()); + + machine.reset(); + EXPECT_EQ(kNeedMoreCodeUnit, machine.feedPrecedingCodeUnit(trailSurrogate)); + EXPECT_EQ(kInvalid, machine.feedPrecedingCodeUnit(trailSurrogate)); + EXPECT_EQ(0, machine.getBoundaryOffset()); + + // Unpaired leading surrogate. Nothing to delete. + machine.reset(); + EXPECT_EQ(kInvalid, machine.feedPrecedingCodeUnit(leadSurrogate)); + EXPECT_EQ(0, machine.getBoundaryOffset()); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/state_machines/ForwardCodePointStateMachine.cpp b/third_party/WebKit/Source/core/editing/state_machines/ForwardCodePointStateMachine.cpp new file mode 100644 index 0000000..aba73a2 --- /dev/null +++ b/third_party/WebKit/Source/core/editing/state_machines/ForwardCodePointStateMachine.cpp
@@ -0,0 +1,69 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/editing/state_machines/ForwardCodePointStateMachine.h" + +namespace blink { + +enum class ForwardCodePointStateMachine::ForwardCodePointState { + NotSurrogate, + LeadSurrogate, + Invalid, +}; + +ForwardCodePointStateMachine::ForwardCodePointStateMachine() + : m_state(ForwardCodePointState::NotSurrogate) {} + +TextSegmentationMachineState +ForwardCodePointStateMachine::feedFollowingCodeUnit(UChar codeUnit) { + switch (m_state) { + case ForwardCodePointState::NotSurrogate: + if (U16_IS_TRAIL(codeUnit)) { + m_codeUnitsToBeDeleted = 0; + m_state = ForwardCodePointState::Invalid; + return TextSegmentationMachineState::Invalid; + } + ++m_codeUnitsToBeDeleted; + if (U16_IS_LEAD(codeUnit)) { + m_state = ForwardCodePointState::LeadSurrogate; + return TextSegmentationMachineState::NeedMoreCodeUnit; + } + return TextSegmentationMachineState::Finished; + case ForwardCodePointState::LeadSurrogate: + if (U16_IS_TRAIL(codeUnit)) { + ++m_codeUnitsToBeDeleted; + m_state = ForwardCodePointState::NotSurrogate; + return TextSegmentationMachineState::Finished; + } + m_codeUnitsToBeDeleted = 0; + m_state = ForwardCodePointState::Invalid; + return TextSegmentationMachineState::Invalid; + case ForwardCodePointState::Invalid: + m_codeUnitsToBeDeleted = 0; + return TextSegmentationMachineState::Invalid; + } + NOTREACHED(); + return TextSegmentationMachineState::Invalid; +} + +TextSegmentationMachineState +ForwardCodePointStateMachine::feedPrecedingCodeUnit(UChar codeUnit) { + NOTREACHED(); + return TextSegmentationMachineState::Invalid; +} + +bool ForwardCodePointStateMachine::atCodePointBoundary() { + return m_state == ForwardCodePointState::NotSurrogate; +} + +int ForwardCodePointStateMachine::getBoundaryOffset() { + return m_codeUnitsToBeDeleted; +} + +void ForwardCodePointStateMachine::reset() { + m_codeUnitsToBeDeleted = 0; + m_state = ForwardCodePointState::NotSurrogate; +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/editing/state_machines/ForwardCodePointStateMachine.h b/third_party/WebKit/Source/core/editing/state_machines/ForwardCodePointStateMachine.h new file mode 100644 index 0000000..037292b --- /dev/null +++ b/third_party/WebKit/Source/core/editing/state_machines/ForwardCodePointStateMachine.h
@@ -0,0 +1,52 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ForwardCodePointStateMachine_h +#define ForwardCodePointStateMachine_h + +#include "core/CoreExport.h" +#include "core/editing/state_machines/TextSegmentationMachineState.h" +#include "wtf/Allocator.h" +#include "wtf/Noncopyable.h" +#include "wtf/text/Unicode.h" + +namespace blink { + +class CORE_EXPORT ForwardCodePointStateMachine { + STACK_ALLOCATED(); + WTF_MAKE_NONCOPYABLE(ForwardCodePointStateMachine); + + public: + ForwardCodePointStateMachine(); + ~ForwardCodePointStateMachine() = default; + + // Prepares by feeding preceding text. + TextSegmentationMachineState feedPrecedingCodeUnit(UChar codeUnit); + + // Finds boundary offset by feeding following text. + TextSegmentationMachineState feedFollowingCodeUnit(UChar codeUnit); + + // Returns true if we are at code point boundary. + bool atCodePointBoundary(); + + // Returns the next boundary offset. + int getBoundaryOffset(); + + // Resets the internal state to the initial state. + void reset(); + + private: + enum class ForwardCodePointState; + + // The number of code units to be deleted. + // Nothing to delete if there is an invalid surrogate pair. + int m_codeUnitsToBeDeleted = 0; + + // The internal state. + ForwardCodePointState m_state; +}; + +} // namespace blink + +#endif
diff --git a/third_party/WebKit/Source/core/editing/state_machines/ForwardCodePointStateMachineTest.cpp b/third_party/WebKit/Source/core/editing/state_machines/ForwardCodePointStateMachineTest.cpp new file mode 100644 index 0000000..499c775 --- /dev/null +++ b/third_party/WebKit/Source/core/editing/state_machines/ForwardCodePointStateMachineTest.cpp
@@ -0,0 +1,73 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/editing/state_machines/ForwardCodePointStateMachine.h" + +#include "testing/gtest/include/gtest/gtest.h" + +namespace blink { + +namespace { +const TextSegmentationMachineState kInvalid = + TextSegmentationMachineState::Invalid; +const TextSegmentationMachineState kNeedMoreCodeUnit = + TextSegmentationMachineState::NeedMoreCodeUnit; +const TextSegmentationMachineState kFinished = + TextSegmentationMachineState::Finished; +} // namespace + +TEST(ForwardCodePointStateMachineTest, DoNothingCase) { + ForwardCodePointStateMachine machine; + EXPECT_EQ(0, machine.getBoundaryOffset()); +} + +TEST(ForwardCodePointStateMachineTest, SingleCharacter) { + ForwardCodePointStateMachine machine; + EXPECT_EQ(kFinished, machine.feedFollowingCodeUnit('a')); + EXPECT_EQ(1, machine.getBoundaryOffset()); + + machine.reset(); + EXPECT_EQ(kFinished, machine.feedFollowingCodeUnit('-')); + EXPECT_EQ(1, machine.getBoundaryOffset()); + + machine.reset(); + EXPECT_EQ(kFinished, machine.feedFollowingCodeUnit('\t')); + EXPECT_EQ(1, machine.getBoundaryOffset()); + + machine.reset(); + // U+3042 HIRAGANA LETTER A. + EXPECT_EQ(kFinished, machine.feedFollowingCodeUnit(0x3042)); + EXPECT_EQ(1, machine.getBoundaryOffset()); +} + +TEST(ForwardCodePointStateMachineTest, SurrogatePair) { + ForwardCodePointStateMachine machine; + + // U+20BB7 is \uD83D\uDDFA in UTF-16. + const UChar leadSurrogate = 0xD842; + const UChar trailSurrogate = 0xDFB7; + + EXPECT_EQ(kNeedMoreCodeUnit, machine.feedFollowingCodeUnit(leadSurrogate)); + EXPECT_EQ(kFinished, machine.feedFollowingCodeUnit(trailSurrogate)); + EXPECT_EQ(2, machine.getBoundaryOffset()); + + // Edge cases + // Unpaired leading surrogate. Nothing to delete. + machine.reset(); + EXPECT_EQ(kNeedMoreCodeUnit, machine.feedFollowingCodeUnit(leadSurrogate)); + EXPECT_EQ(kInvalid, machine.feedFollowingCodeUnit('a')); + EXPECT_EQ(0, machine.getBoundaryOffset()); + + machine.reset(); + EXPECT_EQ(kNeedMoreCodeUnit, machine.feedFollowingCodeUnit(leadSurrogate)); + EXPECT_EQ(kInvalid, machine.feedFollowingCodeUnit(leadSurrogate)); + EXPECT_EQ(0, machine.getBoundaryOffset()); + + // Unpaired trailing surrogate. Nothing to delete. + machine.reset(); + EXPECT_EQ(kInvalid, machine.feedFollowingCodeUnit(trailSurrogate)); + EXPECT_EQ(0, machine.getBoundaryOffset()); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/frame/UseCounter.h b/third_party/WebKit/Source/core/frame/UseCounter.h index 1f8c0e9b..9f8b010b 100644 --- a/third_party/WebKit/Source/core/frame/UseCounter.h +++ b/third_party/WebKit/Source/core/frame/UseCounter.h
@@ -1473,6 +1473,7 @@ RtcpMuxPolicyNegotiate = 1823, DOMClobberedVariableAccessed = 1824, HTMLDocumentCreateProcessingInstruction = 1825, + FetchResponseConstructionWithStream = 1826, // Add new features immediately above this line. Don't change assigned // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp b/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp index e2a50b29..7d90168 100644 --- a/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp +++ b/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp
@@ -151,7 +151,7 @@ } void RangeInputType::handleMouseDownEvent(MouseEvent* event) { - if (element().isDisabledOrReadOnly()) + if (element().isDisabledFormControl()) return; Node* targetNode = event->target()->toNode(); @@ -170,7 +170,7 @@ } void RangeInputType::handleKeydownEvent(KeyboardEvent* event) { - if (element().isDisabledOrReadOnly()) + if (element().isDisabledFormControl()) return; const String& key = event->key();
diff --git a/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.cpp b/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.cpp index b9a47aa..256d2b6 100644 --- a/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.cpp +++ b/third_party/WebKit/Source/core/html/shadow/SliderThumbElement.cpp
@@ -206,7 +206,7 @@ // Missing this kind of check is likely to occur elsewhere if adding it in // each shadow element. HTMLInputElement* input = hostInput(); - if (!input || input->isDisabledOrReadOnly()) { + if (!input || input->isDisabledFormControl()) { stopDragging(); HTMLDivElement::defaultEventHandler(event); return; @@ -239,7 +239,7 @@ bool SliderThumbElement::willRespondToMouseMoveEvents() { const HTMLInputElement* input = hostInput(); - if (input && !input->isDisabledOrReadOnly() && m_inDragMode) + if (input && !input->isDisabledFormControl() && m_inDragMode) return true; return HTMLDivElement::willRespondToMouseMoveEvents(); @@ -247,7 +247,7 @@ bool SliderThumbElement::willRespondToMouseClickEvents() { const HTMLInputElement* input = hostInput(); - if (input && !input->isDisabledOrReadOnly()) + if (input && !input->isDisabledFormControl()) return true; return HTMLDivElement::willRespondToMouseClickEvents(); @@ -327,7 +327,7 @@ void SliderContainerElement::handleTouchEvent(TouchEvent* event) { HTMLInputElement* input = hostInput(); - if (input->isDisabledOrReadOnly()) + if (input->isDisabledFormControl()) return; if (event->type() == EventTypeNames::touchend) {
diff --git a/third_party/WebKit/Source/modules/fetch/Body.cpp b/third_party/WebKit/Source/modules/fetch/Body.cpp index b168fb3..909d960 100644 --- a/third_party/WebKit/Source/modules/fetch/Body.cpp +++ b/third_party/WebKit/Source/modules/fetch/Body.cpp
@@ -11,7 +11,6 @@ #include "core/dom/DOMArrayBuffer.h" #include "core/dom/DOMTypedArray.h" #include "core/fileapi/Blob.h" -#include "core/frame/UseCounter.h" #include "modules/fetch/BodyStreamBuffer.h" #include "modules/fetch/FetchDataLoader.h" #include "public/platform/WebDataConsumerHandle.h" @@ -199,8 +198,7 @@ return promise; } -ScriptValue Body::bodyWithUseCounter(ScriptState* scriptState) { - UseCounter::count(getExecutionContext(), UseCounter::FetchBodyStream); +ScriptValue Body::body(ScriptState* scriptState) { if (!bodyBuffer()) return ScriptValue::createNull(scriptState); ScriptValue stream = bodyBuffer()->stream();
diff --git a/third_party/WebKit/Source/modules/fetch/Body.h b/third_party/WebKit/Source/modules/fetch/Body.h index b7f07b0a..906d033 100644 --- a/third_party/WebKit/Source/modules/fetch/Body.h +++ b/third_party/WebKit/Source/modules/fetch/Body.h
@@ -43,7 +43,7 @@ ScriptPromise formData(ScriptState*); ScriptPromise json(ScriptState*); ScriptPromise text(ScriptState*); - ScriptValue bodyWithUseCounter(ScriptState*); + ScriptValue body(ScriptState*); virtual BodyStreamBuffer* bodyBuffer() = 0; virtual const BodyStreamBuffer* bodyBuffer() const = 0;
diff --git a/third_party/WebKit/Source/modules/fetch/Response.cpp b/third_party/WebKit/Source/modules/fetch/Response.cpp index 21c44bf..d5319f4 100644 --- a/third_party/WebKit/Source/modules/fetch/Response.cpp +++ b/third_party/WebKit/Source/modules/fetch/Response.cpp
@@ -4,6 +4,7 @@ #include "modules/fetch/Response.h" +#include <memory> #include "bindings/core/v8/Dictionary.h" #include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ScriptState.h" @@ -19,6 +20,7 @@ #include "core/dom/DOMArrayBufferView.h" #include "core/dom/URLSearchParams.h" #include "core/fileapi/Blob.h" +#include "core/frame/UseCounter.h" #include "core/html/FormData.h" #include "core/streams/ReadableStreamOperations.h" #include "modules/fetch/BlobBytesConsumer.h" @@ -31,7 +33,6 @@ #include "platform/network/NetworkUtils.h" #include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" #include "wtf/RefPtr.h" -#include <memory> namespace blink { @@ -172,6 +173,8 @@ contentType = "application/x-www-form-urlencoded;charset=UTF-8"; } else if (ReadableStreamOperations::isReadableStream(scriptState, bodyValue)) { + UseCounter::count(executionContext, + UseCounter::FetchResponseConstructionWithStream); bodyBuffer = new BodyStreamBuffer(scriptState, bodyValue); } else { String string = toUSVString(isolate, body, exceptionState);
diff --git a/third_party/WebKit/Source/modules/fetch/Response.idl b/third_party/WebKit/Source/modules/fetch/Response.idl index 2332d3b..361f5940 100644 --- a/third_party/WebKit/Source/modules/fetch/Response.idl +++ b/third_party/WebKit/Source/modules/fetch/Response.idl
@@ -28,7 +28,7 @@ [RaisesException, CallWith=ScriptState] Response clone(); - [CallWith=ScriptState, ImplementedAs=bodyWithUseCounter] readonly attribute any body; + [CallWith=ScriptState, MeasureAs=FetchBodyStream] readonly attribute any body; }; Response implements Body;
diff --git a/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.cpp b/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.cpp index 1d8531d..0ad0def 100644 --- a/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.cpp +++ b/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.cpp
@@ -163,7 +163,6 @@ ExceptionState& exceptionState) : SuspendableObject(context), m_stream(stream), - m_streamAmountOfTracks(stream->getTracks().size()), m_mimeType(options.hasMimeType() ? options.mimeType() : kDefaultMimeType), m_stopped(true), m_audioBitsPerSecond(0), @@ -332,13 +331,6 @@ m_stopped = false; scheduleDispatchEvent(Event::create(EventTypeNames::start)); } - if (m_stream && m_streamAmountOfTracks != m_stream->getTracks().size()) { - m_streamAmountOfTracks = m_stream->getTracks().size(); - onError("Amount of tracks in MediaStream has changed."); - } - - // TODO(mcasas): Act as |m_ignoredMutedMedia| instructs if |m_stream| track(s) - // is in muted() state. if (!m_blobData) { m_blobData = BlobData::create(); @@ -358,8 +350,8 @@ } void MediaRecorder::onError(const WebString& message) { - // TODO(mcasas): Beef up the Error Event and add the |message|, see - // https://github.com/w3c/mediacapture-record/issues/31 + DLOG(ERROR) << message.ascii(); + stopRecording(); scheduleDispatchEvent(Event::create(EventTypeNames::error)); }
diff --git a/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.h b/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.h index 5133beb..aa0324c 100644 --- a/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.h +++ b/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.h
@@ -100,7 +100,6 @@ void dispatchScheduledEvent(); Member<MediaStream> m_stream; - size_t m_streamAmountOfTracks; String m_mimeType; bool m_stopped; int m_audioBitsPerSecond;
diff --git a/third_party/WebKit/Source/modules/vr/VRDisplay.cpp b/third_party/WebKit/Source/modules/vr/VRDisplay.cpp index 0c6bc0e..11ab5b1 100644 --- a/third_party/WebKit/Source/modules/vr/VRDisplay.cpp +++ b/third_party/WebKit/Source/modules/vr/VRDisplay.cpp
@@ -365,7 +365,7 @@ resolver->resolve(); - forceExitPresent(); + stopPresenting(); return promise; } @@ -447,30 +447,12 @@ OnPresentChange(); } +// Need to close service if exists and then free rendering context. void VRDisplay::forceExitPresent() { - if (m_isPresenting) { - if (!m_capabilities->hasExternalDisplay()) { - auto canvas = m_layer.source(); - Fullscreen::fullyExitFullscreen(canvas->document()); - m_fullscreenCheckTimer.stop(); - if (!m_fullscreenOrigWidth.isNull()) { - canvas->setInlineStyleProperty(CSSPropertyWidth, m_fullscreenOrigWidth); - m_fullscreenOrigWidth = String(); - } - if (!m_fullscreenOrigHeight.isNull()) { - canvas->setInlineStyleProperty(CSSPropertyWidth, - m_fullscreenOrigHeight); - m_fullscreenOrigHeight = String(); - } - } else { - // Can't get into this presentation mode, so nothing to do here. - } - m_isPresenting = false; - OnPresentChange(); + if (m_display) { + m_display->ExitPresent(); } - - m_renderingContext = nullptr; - m_contextGL = nullptr; + stopPresenting(); } void VRDisplay::updateLayerBounds() { @@ -612,7 +594,7 @@ } void VRDisplay::OnExitPresent() { - forceExitPresent(); + stopPresenting(); } void VRDisplay::onConnected() { @@ -625,6 +607,32 @@ EventTypeNames::vrdisplaydisconnect, true, false, this, "disconnect")); } +void VRDisplay::stopPresenting() { + if (m_isPresenting) { + if (!m_capabilities->hasExternalDisplay()) { + auto canvas = m_layer.source(); + Fullscreen::fullyExitFullscreen(canvas->document()); + m_fullscreenCheckTimer.stop(); + if (!m_fullscreenOrigWidth.isNull()) { + canvas->setInlineStyleProperty(CSSPropertyWidth, m_fullscreenOrigWidth); + m_fullscreenOrigWidth = String(); + } + if (!m_fullscreenOrigHeight.isNull()) { + canvas->setInlineStyleProperty(CSSPropertyWidth, + m_fullscreenOrigHeight); + m_fullscreenOrigHeight = String(); + } + } else { + // Can't get into this presentation mode, so nothing to do here. + } + m_isPresenting = false; + OnPresentChange(); + } + + m_renderingContext = nullptr; + m_contextGL = nullptr; +} + void VRDisplay::OnActivate(device::mojom::blink::VRDisplayEventReason reason) { if (!m_navigatorVR->isFocused() || m_displayBlurred) return;
diff --git a/third_party/WebKit/Source/modules/vr/VRDisplay.h b/third_party/WebKit/Source/modules/vr/VRDisplay.h index 2f0d66a6..5e29e95 100644 --- a/third_party/WebKit/Source/modules/vr/VRDisplay.h +++ b/third_party/WebKit/Source/modules/vr/VRDisplay.h
@@ -122,6 +122,8 @@ void onConnected(); void onDisconnected(); + void stopPresenting(); + void OnPresentChange(); // VRDisplayClient
diff --git a/ui/file_manager/file_manager/foreground/js/thumbnail_loader.js b/ui/file_manager/file_manager/foreground/js/thumbnail_loader.js index 49898f02..368e189 100644 --- a/ui/file_manager/file_manager/foreground/js/thumbnail_loader.js +++ b/ui/file_manager/file_manager/foreground/js/thumbnail_loader.js
@@ -467,9 +467,8 @@ priority: this.priority_, timestamp: modificationTime }; - if (this.metadata_ && this.metadata_.media && - this.metadata_.media.imageTransform) { - loaderOptions.orientation = this.metadata_.media.imageTransform; + if (this.transform_) { + loaderOptions.orientation = this.transform_; } // Comsume the transform parameter to avoid duplicated transformation in // getImage().
diff --git a/ui/file_manager/file_manager/foreground/js/thumbnail_loader_unittest.js b/ui/file_manager/file_manager/foreground/js/thumbnail_loader_unittest.js index 509a4b0..e0c7f88 100644 --- a/ui/file_manager/file_manager/foreground/js/thumbnail_loader_unittest.js +++ b/ui/file_manager/file_manager/foreground/js/thumbnail_loader_unittest.js
@@ -175,6 +175,8 @@ load: function(url, callback, opt_option) { // Assert that data url is passed. assertTrue(/^data:/i.test(url)); + // Assert that the rotation is propagated to ImageLoader. + assertEquals(1, opt_option.orientation.rotate90); // ImageLoader returns rotated image. callback({status: 'success', data: generateSampleImageDataUrl(32, 64), width: 32, height: 64});
diff --git a/ui/message_center/BUILD.gn b/ui/message_center/BUILD.gn index a9d445b8..13af4d74 100644 --- a/ui/message_center/BUILD.gn +++ b/ui/message_center/BUILD.gn
@@ -201,6 +201,7 @@ "//base", "//base/test:test_support", "//skia", + "//testing/gmock", "//testing/gtest", "//ui/base", "//ui/base:test_support",
diff --git a/ui/message_center/views/message_center_view.cc b/ui/message_center/views/message_center_view.cc index 0ea74df..ed89893 100644 --- a/ui/message_center/views/message_center_view.cc +++ b/ui/message_center/views/message_center_view.cc
@@ -366,25 +366,30 @@ Update(true /* animate */); } -void MessageCenterView::OnNotificationUpdated(const std::string& id) { - NotificationViewsMap::const_iterator view_iter = notification_views_.find(id); - if (view_iter == notification_views_.end()) - return; - +// This is a separate function so we can override it in tests. +bool MessageCenterView::SetRepositionTarget() { // Set the item on the mouse cursor as the reposition target so that it // should stick to the current position over the update. - bool set = false; if (message_list_view_->IsMouseHovered()) { for (const auto& hover_id_view : notification_views_) { MessageView* hover_view = hover_id_view.second; if (hover_view->IsMouseHovered()) { message_list_view_->SetRepositionTarget(hover_view->bounds()); - set = true; - break; + return true; } } } - if (!set) + return false; +} + +void MessageCenterView::OnNotificationUpdated(const std::string& id) { + NotificationViewsMap::const_iterator view_iter = notification_views_.find(id); + if (view_iter == notification_views_.end()) + return; + + // If there is no reposition target anymore, make sure to reset the reposition + // session. + if (!SetRepositionTarget()) message_list_view_->ResetRepositionSession(); // TODO(dimich): add MessageCenter::GetVisibleNotificationById(id)
diff --git a/ui/message_center/views/message_center_view.h b/ui/message_center/views/message_center_view.h index bd923fa5..da206b0 100644 --- a/ui/message_center/views/message_center_view.h +++ b/ui/message_center/views/message_center_view.h
@@ -62,6 +62,10 @@ void SetIsClosing(bool is_closing); protected: + // Potentially sets the reposition target, and then returns whether or not it + // was was set. + virtual bool SetRepositionTarget(); + // Overridden from views::View: void Layout() override; gfx::Size GetPreferredSize() const override;
diff --git a/ui/message_center/views/message_center_view_unittest.cc b/ui/message_center/views/message_center_view_unittest.cc index 36a8302..4f8a0a1 100644 --- a/ui/message_center/views/message_center_view_unittest.cc +++ b/ui/message_center/views/message_center_view_unittest.cc
@@ -115,6 +115,37 @@ bool locked_ = false; }; +// This is the class we are testing, but we need to override some functions +// in it, hence MockMessageCenterView. +class MockMessageCenterView : public MessageCenterView { + public: + MockMessageCenterView(MessageCenter* message_center, + MessageCenterTray* tray, + int max_height, + bool initially_settings_visible); + + bool SetRepositionTarget() override; + + private: + DISALLOW_COPY_AND_ASSIGN(MockMessageCenterView); +}; + +MockMessageCenterView::MockMessageCenterView(MessageCenter* message_center, + MessageCenterTray* tray, + int max_height, + bool initially_settings_visible) + : MessageCenterView(message_center, + tray, + max_height, + initially_settings_visible) {} + +// Always say that the current reposition session is still active, by +// returning true. Normally the reposition session is set based on where the +// mouse is hovering. +bool MockMessageCenterView::SetRepositionTarget() { + return true; +} + /* Test fixture ***************************************************************/ class MessageCenterViewTest : public views::ViewsTestBase, @@ -175,7 +206,7 @@ // The ownership map of notifications; the key is the id. std::map<std::string, std::unique_ptr<Notification>> notifications_; std::unique_ptr<views::Widget> widget_; - std::unique_ptr<MessageCenterView> message_center_view_; + std::unique_ptr<MockMessageCenterView> message_center_view_; std::unique_ptr<FakeMessageCenterImpl> message_center_; std::map<CallType,int> callCounts_; @@ -214,9 +245,9 @@ NotificationList::Notifications notifications = Notifications(); message_center_->SetVisibleNotifications(notifications); - // Then create a new MessageCenterView with that single notification. - message_center_view_.reset(new MessageCenterView( - message_center_.get(), NULL, 100, false)); + // Then create a new MockMessageCenterView with that single notification. + message_center_view_.reset( + new MockMessageCenterView(message_center_.get(), NULL, 100, false)); GetMessageListView()->quit_message_loop_after_animation_for_test_ = true; GetMessageCenterView()->SetBounds(0, 0, 380, 600); message_center_view_->SetNotifications(notifications); @@ -464,6 +495,70 @@ GetMessageListView()->GetInsets().height()); } +TEST_F(MessageCenterViewTest, SizeAfterUpdateBelowWithRepositionTarget) { + EXPECT_EQ(2, GetMessageListView()->child_count()); + // Make sure that notification 2 is placed above notification 1. + EXPECT_LT(GetNotificationView(kNotificationId2)->bounds().y(), + GetNotificationView(kNotificationId1)->bounds().y()); + + GetMessageListView()->SetRepositionTargetForTest( + GetNotificationView(kNotificationId1)->bounds()); + + std::unique_ptr<Notification> notification = base::MakeUnique<Notification>( + NOTIFICATION_TYPE_SIMPLE, std::string(kNotificationId2), + base::UTF8ToUTF16("title2"), + base::UTF8ToUTF16("message\nwhich\nis\nvertically\nlong\n."), + gfx::Image(), base::UTF8ToUTF16("display source"), GURL(), + NotifierId(NotifierId::APPLICATION, "extension_id"), + message_center::RichNotificationData(), nullptr); + UpdateNotification(kNotificationId2, std::move(notification)); + + // Wait until the animation finishes if available. + if (GetAnimator()->IsAnimating()) + base::RunLoop().Run(); + + int width = + GetMessageListView()->width() - GetMessageListView()->GetInsets().width(); + EXPECT_EQ( + GetMessageListView()->height(), + GetNotificationView(kNotificationId1)->GetHeightForWidth(width) + + (kMarginBetweenItems - MessageView::GetShadowInsets().bottom()) + + GetNotificationView(kNotificationId2)->GetHeightForWidth(width) + + GetMessageListView()->GetInsets().height()); +} + +TEST_F(MessageCenterViewTest, SizeAfterUpdateOfRepositionTarget) { + EXPECT_EQ(2, GetMessageListView()->child_count()); + // Make sure that notification 2 is placed above notification 1. + EXPECT_LT(GetNotificationView(kNotificationId2)->bounds().y(), + GetNotificationView(kNotificationId1)->bounds().y()); + + GetMessageListView()->SetRepositionTargetForTest( + GetNotificationView(kNotificationId1)->bounds()); + + std::unique_ptr<Notification> notification = base::MakeUnique<Notification>( + NOTIFICATION_TYPE_SIMPLE, std::string(kNotificationId1), + base::UTF8ToUTF16("title2"), + base::UTF8ToUTF16("message\nwhich\nis\nvertically\nlong\n."), + gfx::Image(), base::UTF8ToUTF16("display source"), GURL(), + NotifierId(NotifierId::APPLICATION, "extension_id"), + message_center::RichNotificationData(), nullptr); + UpdateNotification(kNotificationId1, std::move(notification)); + + // Wait until the animation finishes if available. + if (GetAnimator()->IsAnimating()) + base::RunLoop().Run(); + + int width = + GetMessageListView()->width() - GetMessageListView()->GetInsets().width(); + EXPECT_EQ( + GetMessageListView()->height(), + GetNotificationView(kNotificationId1)->GetHeightForWidth(width) + + (kMarginBetweenItems - MessageView::GetShadowInsets().bottom()) + + GetNotificationView(kNotificationId2)->GetHeightForWidth(width) + + GetMessageListView()->GetInsets().height()); +} + TEST_F(MessageCenterViewTest, SizeAfterRemove) { EXPECT_EQ(2, GetMessageListView()->child_count()); RemoveNotification(kNotificationId1, false);
diff --git a/ui/message_center/views/message_list_view.cc b/ui/message_center/views/message_list_view.cc index 0c0d6bf..51158fd 100644 --- a/ui/message_center/views/message_list_view.cc +++ b/ui/message_center/views/message_list_view.cc
@@ -347,6 +347,54 @@ } } +std::vector<int> MessageListView::ComputeRepositionOffsets( + const std::vector<int>& heights, + const std::vector<bool>& deleting, + int target_index, + int padding) { + DCHECK_EQ(heights.size(), deleting.size()); + // Calculate the vertical length between the top of message list and the top + // of target. This is to shrink or expand the height of the message list + // when the notifications above the target is changed. + int vertical_gap_to_target_from_top = GetInsets().top(); + for (int i = 0; i < target_index; i++) { + if (!deleting[i]) + vertical_gap_to_target_from_top += heights[i] + padding; + } + + // If the calculated length is changed from |repositon_top_|, it means that + // some of items above the target are updated and their height are changed. + // Adjust the vertical length above the target. + fixed_height_ -= reposition_top_ - vertical_gap_to_target_from_top; + reposition_top_ = vertical_gap_to_target_from_top; + + std::vector<int> positions; + positions.reserve(heights.size()); + // Layout the items above the target. + int y = GetInsets().top(); + for (int i = 0; i < target_index; i++) { + positions.push_back(y); + if (!deleting[i]) + y += heights[i] + padding; + } + DCHECK_EQ(y, reposition_top_); + + // Match the top with |reposition_top_|. + y = reposition_top_; + // Layout the target and the items below the target. + for (int i = target_index; i < int(heights.size()); i++) { + positions.push_back(y); + if (!deleting[i]) + y += heights[i] + padding; + } + // If the target view, or any views below it expand they might exceed + // |fixed_height_|. Rather than letting them push out the bottom and be + // clipped, instead increase |fixed_height_|. + fixed_height_ = std::max(fixed_height_, y - padding + GetInsets().bottom()); + + return positions; +} + void MessageListView::AnimateNotificationsAboveTarget() { int target_index = -1; int padding = kMarginBetweenItems - MessageView::GetShadowInsets().bottom(); @@ -372,52 +420,22 @@ } } } + if (target_index != -1) { - // Cache for the heights of items, since calculating height is heavy - // operation and the heights shouldn't be changed in this block. - std::map<views::View*, int> height_cache; - - // Calculate the vertical length between the top of message list and the top - // of target. This is to shrink or expand the height of the message list - // when the notifications above the target is changed. - int vertical_gap_to_target_from_top = GetInsets().height(); - for (int i = 0; i < target_index; i++) { + std::vector<int> heights; + std::vector<bool> deleting; + heights.reserve(child_count()); + deleting.reserve(child_count()); + for (int i = 0; i < child_count(); i++) { views::View* child = child_at(i); - int height = child->GetHeightForWidth(child_area.width()); - height_cache[child] = height; - if (deleting_views_.find(child) == deleting_views_.end()) - vertical_gap_to_target_from_top += height + padding; + heights.push_back(child->GetHeightForWidth(child_area.width())); + deleting.push_back(deleting_views_.find(child) != deleting_views_.end()); } - - // If the calculated length is changed from |repositon_top_|, it means that - // some of items above the target are updated and their height are changed. - // Adjust the vertical length above the target. - if (reposition_top_ != vertical_gap_to_target_from_top) { - fixed_height_ -= reposition_top_ - vertical_gap_to_target_from_top; - reposition_top_ = vertical_gap_to_target_from_top; + std::vector<int> ys = + ComputeRepositionOffsets(heights, deleting, target_index, padding); + for (int i = 0; i < child_count(); ++i) { + AnimateChild(child_at(i), ys[i], heights[i], true /* animate_on_move */); } - - // Match the top with |reposition_top_|. - int y = reposition_top_; - // Layout the target and the items below the target. - for (int i = target_index; i < child_count(); i++) { - views::View* child = child_at(i); - int height = child->GetHeightForWidth(child_area.width()); - if (AnimateChild(child, y, height, false /* animate_on_move */)) - y += height + padding; - } - - // Layout the items above the target. - y = GetInsets().top(); - for (int i = 0; i < target_index; i++) { - views::View* child = child_at(i); - DCHECK(height_cache.find(child) != height_cache.end()); - int height = height_cache[child]; - if (AnimateChild(child, y, height, true /* animate_on_move */)) - y += height + padding; - } - - DCHECK_EQ(y, reposition_top_); } else { // Layout all the items. int y = GetInsets().top();
diff --git a/ui/message_center/views/message_list_view.h b/ui/message_center/views/message_list_view.h index e71bc8f..1104b47 100644 --- a/ui/message_center/views/message_list_view.h +++ b/ui/message_center/views/message_list_view.h
@@ -7,6 +7,7 @@ #include <list> #include <set> +#include <vector> #include "base/macros.h" #include "ui/compositor/paint_context.h" @@ -79,6 +80,11 @@ // Animates all notifications above target downwards to align with the top of // the last closed notification. void AnimateNotificationsAboveTarget(); + // Computes reposition offsets for |AnimateNotificationsAboveTarget|. + std::vector<int> ComputeRepositionOffsets(const std::vector<int>& heights, + const std::vector<bool>& deleting, + int target_index, + int padding); // Schedules animation for a child to the specified position. Returns false // if |child| will disappear after the animation.
diff --git a/ui/message_center/views/message_list_view_unittest.cc b/ui/message_center/views/message_list_view_unittest.cc index 730bda1..96c54cd 100644 --- a/ui/message_center/views/message_list_view_unittest.cc +++ b/ui/message_center/views/message_list_view_unittest.cc
@@ -9,6 +9,7 @@ #include "base/macros.h" #include "base/memory/ptr_util.h" #include "base/strings/utf_string_conversions.h" +#include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/message_center/fake_message_center.h" #include "ui/message_center/notification.h" @@ -18,6 +19,8 @@ #include "ui/message_center/views/notification_view.h" #include "ui/views/test/views_test_base.h" +using ::testing::ElementsAre; + namespace message_center { static const char* kNotificationId1 = "notification id 1"; @@ -124,6 +127,18 @@ return message_list_view_.get(); } + int& reposition_top() { return message_list_view_->reposition_top_; } + + int& fixed_height() { return message_list_view_->fixed_height_; } + + std::vector<int> ComputeRepositionOffsets(const std::vector<int>& heights, + const std::vector<bool>& deleting, + int target_index, + int padding) { + return message_list_view_->ComputeRepositionOffsets(heights, deleting, + target_index, padding); + } + MockNotificationView* CreateNotificationView( const Notification& notification) { return new MockNotificationView(this, notification, this); @@ -189,4 +204,175 @@ EXPECT_TRUE(message_list_view()->Contains(notification_view)); } +TEST_F(MessageListViewTest, RepositionOffsets) { + const auto insets = message_list_view()->GetInsets(); + const int top = insets.top(); + std::vector<int> positions; + + // Notification above grows. |reposition_top| should remain at the same + // offset from the bottom. + fixed_height() = 4 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({2, 1, 1, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 2, top + 3, top + 4)); + EXPECT_EQ(4 + insets.height() + 1, fixed_height()); + EXPECT_EQ(1 + top + 1, reposition_top()); + + // Notification above shrinks. |reposition_top| should remain at the same + // offset from the bottom. + fixed_height() = 5 + insets.height(); + reposition_top() = 2 + top; + positions = + ComputeRepositionOffsets({1, 1, 1, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 2, top + 3)); + EXPECT_EQ(4 + insets.height(), fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Notification above is being deleted. |reposition_top| should remain at the + // same offset from the bottom. + fixed_height() = 4 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 1, 1, 1}, {true, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top, top + 1, top + 2)); + EXPECT_EQ(4 + insets.height() - 1, fixed_height()); + EXPECT_EQ(1 + top - 1, reposition_top()); + + // Notification above is inserted. |reposition_top| should remain at the + // same offset from the bottom. + fixed_height() = 3 + insets.height(); + reposition_top() = top; + positions = + ComputeRepositionOffsets({1, 1, 1, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 2, top + 3)); + EXPECT_EQ(3 + insets.height() + 1, fixed_height()); + EXPECT_EQ(top + 1, reposition_top()); + + // Target notification grows with no free space. |reposition_top| is forced to + // change its offset from the bottom. + fixed_height() = 4 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 2, 1, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 3, top + 4)); + EXPECT_EQ(4 + insets.height() + 1, fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Target notification grows with free space. |reposition_top| should remain + // at the same offset from the bottom. + fixed_height() = 5 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 2, 1, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 3, top + 4)); + EXPECT_EQ(5 + insets.height(), fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Target notification grows with not enough free space. |reposition_top| + // should change its offset as little as possible, and consume the free space. + fixed_height() = 5 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 3, 1, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 4, top + 5)); + EXPECT_EQ(5 + insets.height() + 1, fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Target notification shrinks. |reposition_top| should remain at the + // same offset from the bottom. + fixed_height() = 5 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 1, 1, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 2, top + 3)); + EXPECT_EQ(5 + insets.height(), fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Notification below grows with no free space. |reposition_top| is forced to + // change its offset from the bottom. + fixed_height() = 4 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 1, 2, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 2, top + 4)); + EXPECT_EQ(4 + insets.height() + 1, fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Notification below grows with free space. |reposition_top| should remain + // at the same offset from the bottom. + fixed_height() = 5 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 1, 2, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 2, top + 4)); + EXPECT_EQ(5 + insets.height(), fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Notification below shrinks. |reposition_top| should remain at the same + // offset from the bottom. + fixed_height() = 5 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 1, 1, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 2, top + 3)); + EXPECT_EQ(5 + insets.height(), fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Notification below is being deleted. |reposition_top| should remain at the + // same offset from the bottom. + fixed_height() = 4 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 1, 1, 1}, {false, false, true, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 2, top + 2)); + EXPECT_EQ(4 + insets.height(), fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Notification below is inserted with free space. |reposition_top| should + // remain at the same offset from the bottom. + fixed_height() = 4 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 1, 1, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 2, top + 3)); + EXPECT_EQ(4 + insets.height(), fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Notification below is inserted with no free space. |reposition_top| is + // forced to change its offset from the bottom. + fixed_height() = 3 + insets.height(); + reposition_top() = 1 + top; + positions = + ComputeRepositionOffsets({1, 1, 1, 1}, {false, false, false, false}, + 1 /* target_index */, 0 /* padding */); + EXPECT_THAT(positions, ElementsAre(top, top + 1, top + 2, top + 3)); + EXPECT_EQ(3 + insets.height() + 1, fixed_height()); + EXPECT_EQ(1 + top, reposition_top()); + + // Test padding. + fixed_height() = 20 + insets.height(); + reposition_top() = 5 + top; + positions = + ComputeRepositionOffsets({5, 3, 3, 3}, {false, false, false, false}, + 1 /* target_index */, 2 /* padding */); + EXPECT_THAT(positions, + ElementsAre(top, top + 7, top + 7 + 5, top + 7 + 5 + 5)); + EXPECT_EQ(20 + insets.height() + 2, fixed_height()); + EXPECT_EQ(5 + top + 2, reposition_top()); +} + } // namespace